首页 文章

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

提问于
浏览
3

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

对不起,如果不是很清楚:(

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

1 回答

  • 2

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

    您可以使用this tutorial找到图像的直方图 . 因此,例如对于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

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

相关问题