比较两幅图像特定区域的直方图? OpenCV的

时间:2012-10-05 17:05:12

标签: opencv python-2.7 histogram image-comparison

基本上,我希望能够比较两个直方图,而不仅仅是特定区域的整个图像。我有图像A并且在其上有一个特定的矩形区域,我想与另一个图像进行比较B.有没有办法获得图像上可定义矩形区域的直方图?我有矩形区域的x y位置,以及它的宽度和高度,并希望得到它的直方图。我正在使用opencv和python。

很抱歉,如果不是很清楚:(

(我正在设置一个程序,用于拍摄电路板的图片,并检查每个焊盘是否与完美电路板的图像保持一致。如果一个焊盘关闭,程序会发出一个标记,表示该特定焊盘是x%,而不是整个董事会。

1 个答案:

答案 0 :(得分:2)

注意:以下是在C ++中,但我认为找到python的等效函数并不难。

您可以使用this教程找到图像的直方图。因此,例如我们得到的lena图像:

lenahist

在您的情况下,由于您有矩形坐标,因此您只需提取图像的ROI:

// C++ code
cv::Mat image = cv::imread("lena.png", 0);
cv::Rect roiRect = cv::Rect(150, 150, 250, 250);
cv::Mat imageRoi = image(roiRect);

然后以与上面相同的方式找到ROI的直方图:

lenaroihist

这是你想要的(至少在理论上)还是我误解了?