我正在寻找一种方法来访问cv :: Mat对象中灰度像素的值,我能够找到很多答案,我确信它们有效,但对我来说它们只是没有做。基本上我所拥有的是以下内容:
gray_image = imread("myimage.png", CV_LOAD_IMAGE_GRAYSCALE);
equalizeHist(gray_image, eq_image);
// This line prints garbage
const unsigned char* row = eq_image.ptr<unsigned char>(10);
cout << row[10] << endl;
// This line also prints garbage
cout << eq_image.at<uchar>(10, 10) << endl;
我只想在位置(10,10)看到像素的灰度[0,255]值。我很确定这两行适用于其他人,但不适合我,也许这是Linux的事情。
如何读取灰度整数中的cv :: Mat像素?
谢谢,
答案 0 :(得分:5)
该值打印为ASCII字符,具体取决于实际值,可能是不可打印的垃圾。如果您有兴趣将像素值打印为整数,则需要将值转换为int
以获取另一个operator<< overload:
cout << static_cast<int>(row[10]) << endl;