基本上,我希望能够比较两个直方图,但不是整个图像只是特定区域。我有图像 A,上面有一个特定的矩形区域,我想与另一个图像 B 进行比较。有没有办法获得图像上可定义矩形区域的直方图?我有矩形区域的 xy 位置,以及它的宽度和高度,并想得到它的直方图。我正在将opencv与python一起使用。
抱歉,如果不是很清楚:(
(我正在设置一个为电路板拍照的程序,并检查每个焊盘与完美电路板图像的一致性。如果一个焊盘关闭,程序会发出一个标志,表示特定焊盘关闭x%,而不是整个董事会。
基本上,我希望能够比较两个直方图,但不是整个图像只是特定区域。我有图像 A,上面有一个特定的矩形区域,我想与另一个图像 B 进行比较。有没有办法获得图像上可定义矩形区域的直方图?我有矩形区域的 xy 位置,以及它的宽度和高度,并想得到它的直方图。我正在将opencv与python一起使用。
抱歉,如果不是很清楚:(
(我正在设置一个为电路板拍照的程序,并检查每个焊盘与完美电路板图像的一致性。如果一个焊盘关闭,程序会发出一个标志,表示特定焊盘关闭x%,而不是整个董事会。
注意:以下是用 C++ 编写的,但我认为找到 python 的等效函数并不难。
您可以使用本教程找到图像的直方图。例如,对于我们得到的 lena 图像:
在您的情况下,由于您有矩形坐标,您可以提取图像的 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 的直方图:
这是你想要的(至少在理论上)还是我误解了?