我正在尝试访问RGB图像的三维直方图。但是,直方图矩阵返回的行数和列数均为-1。我想要遍历直方图并检查三维矩阵中的单个值。但是,当我检查矩阵中的行数和列数时,如下所示,我得到-1。
代码:
我犯了什么错误?我怎样才能访问单个矩阵值?
int main( int argc, const char** argv ) {
Mat image = imread("fl.png");
int histSize[3] = {8, 8, 8};
float range[2] = {0, 256};
const float * ranges[3] = {range, range, range};
int channels[3] = {0, 1, 2};
Mat hist;
calcHist(&image, 1, channels, Mat(), hist, 3, histSize, ranges);
cout << "Hist.rows = "<< hist.rows << endl;
cout << "Hist.cols = "<< hist.cols << endl;
return 0;
}
输出
Hist.rows = -1
Hist.cols = -1
我犯了什么错误?我怎样才能访问单个矩阵值?