c++ - OpenCV 中的像素值超过 255 - 1D 直方图

标签 c++ visual-studio-2010 visual-c++ opencv

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;        
}

最佳答案

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

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

例如,输出Value254 = 4182表示有 4182 个像素点的值为 254。

关于c++ - OpenCV 中的像素值超过 255 - 1D 直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14334092/

相关文章:

c++ - 类数据成员的初始化顺序

python - C++ 输出与 Python 不同的消息(从串口读取)

c++ - 在 C++ 中可以将新声明的映射的地址分配给现有映射的地址吗?

c - Microsoft Visual Studio 中的外部链接问题

c++ - 使用 gcc 编译时区分大小写导致错误

c++ - 我可以使用 VS2008 的 C++ 编译器使用 VS2010 并且仅使用 Server 2008 Platform SDK 进行编译吗?

c++ - 空结构(或结构填充)可以有任意值吗?

vb.net - 在Visual Studio中修复表单大小

c++ - Visual Studio 2010 项目文件过滤器

c - WM_MOUSEMOVE 位置问题