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