【问题标题】:Compare histograms of specific areas of two images? OpenCV比较两幅图像特定区域的直方图?开放式CV
【发布时间】:2012-09-26 21:12:22
【问题描述】:

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

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

(我正在设置一个程序,该程序拍摄电路板的照片,并检查每个焊盘与完美电路板图像的一致性。如果一个焊盘关闭,程序会发出一个标志,说明该特定焊盘偏离了 x%,而不是整个董事会。

【问题讨论】:

    标签: opencv python-2.7 histogram image-comparison


    【解决方案1】:

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

    您可以使用this 教程找到图像的直方图。例如,对于我们得到的 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的直方图:

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

    【讨论】:

    • 这正是我想要的。我不知道投资回报率。非常感谢!我敢肯定,一旦我深入了解我的代码,我会遇到更多问题,但这将对我有很大帮助。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 2016-03-29
    • 2015-05-01
    • 2017-12-10
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多