Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将打开的CV图像中的颜色转换为整数格式_C++_Opencv - Fatal编程技术网

C++ 将打开的CV图像中的颜色转换为整数格式

C++ 将打开的CV图像中的颜色转换为整数格式,c++,opencv,C++,Opencv,我试图制作一个直方图,它由一个大小为256*256*256的立方体表示,立方体中的每个位置代表一种颜色。因此,从一幅图像中,我想填充一个位置中每种颜色的频率,但我很难将每个像素的BGR向量转换为int,以便访问立方体位置 typedef std::vector<std::vector<std::vector<int>>> CubeType; typedef cv::Mat MatType; typedef cv::Vec3b ColorType; Histo

我试图制作一个直方图,它由一个大小为256*256*256的立方体表示,立方体中的每个位置代表一种颜色。因此,从一幅图像中,我想填充一个位置中每种颜色的频率,但我很难将每个像素的BGR向量转换为int,以便访问立方体位置

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::vector的方法。

这是一个包含3个条目的向量。通常BGR(可以是RBG或HSV,但OpenCV默认为图像的BGR)值,因此您可以像引用数组一样引用它们

int b = color[0];
int g = color[1];
int r = color[2];

有关详细帮助,请参阅。

一旦您将问题确定为重复问题,请将其标记为重复问题,不要写答案,这会产生相反的效果。
int b = color[0];
int g = color[1];
int r = color[2];