从打开的 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 图像中获取颜色为整数格式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将CV2 numpy数组转换为QImage时如何配置颜色?

标记指定颜色

使用开放CV和python提取或获取图像中几个点的平均RGB颜色

图像未在 python OpenCV 中打开 [重复]

我如何以编程方式从 kmeans 数据中建立 cv2 掩码的上限和下限

从声音文件中获取帧