比较两张图片特定区域的直方图?OpenCV

3
基本上,我想要比较两个直方图,但只比较特定区域而不是整张图片。我有一张名为A的图片,并且在其中有一个矩形区域,我想将其与另一张名为B的图片进行比较。是否有一种方法可以获取图像中可定义的矩形区域的直方图?我有矩形区域的x y位置、宽度和高度,并希望得到其直方图。我正在使用Python中的OpenCV。
抱歉如果我的表述不太清楚 :(
(我正在设置一个程序,该程序拍摄电路板的照片,并检查每个焊盘与完美电路板的图像是否一致。如果一个焊盘偏离了,程序会提醒该特定的焊盘偏离了X百分比,而不是整个电路板。)
1个回答

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

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

这正是我一直在寻找的。我不知道 ROI。非常感谢!我相信一旦深入我的代码,我会遇到更多问题,但这将极大地帮助我。谢谢! - user1723662

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接