如何计算OPenCV中32bit浮点图像的图像直方图

时间:2014-11-05 12:52:58

标签: opencv histogram

我想计算图像的直方图,像素是32F(32位浮点)。什么应该是" calcHist"的参数值?功能: - 暗淡 - 垃圾箱 - 范围

1 个答案:

答案 0 :(得分:4)

好吧,我已经多次这样做了。像这样:

cv::Mat matSrc;    // this is a CV_32FC1 normalised image

int nHistSize = 65536;
float fRange[] = { 0.0f, 1.0f };
const float* fHistRange = { fRange };

cv::Mat matHist;
cv::calcHist(&matSrc, 1, 0, cv::Mat(), matHist, 1, &nHistSize, &fHistRange);

正如它所说in the documentation描述了源数组:

  

源数组。它们都应该具有相同的深度,CV_8U或CV_32F,   和相同的大小。它们中的每一个都可以具有任意数量   信道。

所以支持CV_32F。在这种情况下,范围(在我的示例中为0.0到1.0)被分箱到所需的箱数(在我的示例中为65536)。