【发布时间】:2013-01-15 08:54:55
【问题描述】:
http://www.huahongquan.com/index.php/blog/x-ly-nh-video-s/11-opencv-topic-02-get-histogram
我使用他的代码为我的图像计算一维直方图。问题是,范围设置为 0-255,但是当我打印值时,我得到的像素值超过 255(即 15842、73132)
我需要在代码中添加什么内容吗?
@George 这就是我打印值和使用 Mat 的方式。
for(int i = 0 ; i < 256 ; i++){
cout << "Value" << i << " = " << histogram.at<float>(i) << endl;
}
【问题讨论】:
-
您使用什么代码来打印这些值?如果只使用 C++ IO 流,则可能需要类型转换来定义数据是
unsigned char而不是int。当然IplImage必须有IPL_DEPTH_8U的色深,否则值那么大也是正常的。 -
@GeorgeAprilis 谢谢,但我已将它们转换为灰度。我如何打印上面的值(我编辑了我的 Q)谢谢!
-
所以你的意思是它现在可以进行转换?
标签: c++ visual-studio-2010 visual-c++ opencv