从打开的 CV 图像中获取颜色为整数格式 [重复]
Posted
技术标签:
【中文标题】从打开的 CV 图像中获取颜色为整数格式 [重复]【英文标题】:Get Color from Open CV Image into integer format [duplicate] 【发布时间】:2018-11-03 14:16:10 【问题描述】:我正在尝试制作一个由大小为 256*256*256 的立方体表示的直方图,立方体中的每个位置都代表一种颜色。因此,从图像中,我想在一个位置填充每种颜色的频率,但是我无法将每个像素的 BGR 向量转换为 int,因此我可以访问 Cube 位置
typedef std::vector<std::vector<std::vector<int>>> CubeType;
typedef cv::Mat MatType;
typedef cv::Vec3b ColorType;
Histogram::Histogram(MatType const& image, int binSize)
aHist = CubeType(binSize, std::vector<std::vector<int>>(binSize, std::vector<int>(binSize, 0)));
aBinSize = binSize; // int
for(int i = 0; i < image.cols; ++i)
for(int j = 0; j < image.rows; ++j)
ColorType color = image.at<ColorType>(j, i);
我需要一种将 cv::Vec3b 转换为三个整数的方法
int b, g, r;
或获得表示整数的不同 cv:: 向量的方法。
【问题讨论】:
【参考方案1】:它是一个包含 3 个条目的向量。通常是 BGR(可以是 RBG 或 HSV,但 OpenCV 对于图像默认为 BGR)值,因此您可以像引用数组一样引用它们。
int b = color[0];
int g = color[1];
int r = color[2];
有关详细帮助,请参阅this answer。
【讨论】:
一旦您将问题识别为重复问题,请将其标记为重复问题,不要写答案——这会适得其反。以上是关于从打开的 CV 图像中获取颜色为整数格式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用开放CV和python提取或获取图像中几个点的平均RGB颜色