2013-01-15 80 views
1

http://www.huahongquan.com/index.php/blog/x-ly-nh-video-s/11-opencv-topic-02-get-histogram像素值超过255 - 1D直方图

我用自己的代码来计算1D直方图我的图片。问题是,范围从0-255设置,但我打印的值,我得到的像素值超过255(即15842,73132)

是否有我需要添加的代码?

@George这是我如何打印的值,我使用垫。

for(int i = 0 ; i < 256 ; i++){ 
cout << "Value" << i << " = " << histogram.at<float>(i) << endl;   
} 
+0

你用什么代码打印值?如果您只是使用C++ IO流,则可能需要使用类型转换来定义数据是'unsigned char'而不是'int'。当然,IplImage必须具有“IPL_DEPTH_8U”的颜色深度,否则值很大是很自然的。 –

+0

@GeorgeAprilis谢谢,但我已经将它们转换为灰度。我如何打印这些值(我编辑了我的Q),谢谢! – Masochist

+0

所以你的意思是它现在与转换工作? –

回答

8

我认为范围0-255你说的是箱的数量,而不是像素值。

histogram.at<float>(i)是落入bin i的像素数,因此它可以是从0到输入图像大小(宽*高)的任意整数。

例如,输出Value254 = 4182意味着有4182个像素,其值254

+0

谢谢!刚才意识到我有多愚蠢! – Masochist