我在ImageJ中打开了一个图像,并输出了加载图像的直方图表示。使用ImageJ,我能够访问与它们在图像中出现的像素值对应的列表。
然而,当我试图将图像加载到使用OpenCV编写的样本原型中以便使用像素值列表及其频率计算其直方图时,我得到了完全不同的结果;然而,两个直方图的绘图输出相似的分布形状。
OpenCV的直方图计算如下:
cv::calcHist(
&image,
1,
channels,
cv::Mat(),
hist,
1,
histSize,
ranges
);
并通过
访问 histo.at<float>(i)
结果可以在下面的快照中看到:
上图像来自OpenCV示例,而第二图像是使用ImageJ
计算的
这是因为我试图在C ++中使用OpenCV提取ImageJ计算的相似值。感谢。
注意:两者都具有相同的像素数