gpt4 book ai didi

opencv - 在图像中查找图标

转载 作者:行者123 更新时间:2023-12-02 16:47:19 28 4
gpt4 key购买 nike

我刚刚开始学习计算机视觉,并且正在从事一个简单的项目,以在静止图像中查找基本图标。

我有一个模板图片:
enter image description here

和两个测试图像:

enter image description here
enter image description here

我使用模板匹配(使用AForge.net,但我认为它是相同的算法
OpenCV和Emgu使用的。我可能是错的,我是CV的新手),发现阈值为.80563时,我在以上两个示例中都找到了完全匹配的内容,而在我尝试不使用该图标的图像中未找到匹配的内容。

我以为自己要到某个地方,直到我查看每张图片中的匹配项返回的内容(蓝色突出显示的正方形是匹配图像的位置)。

enter image description here(正确)和enter image description here(完全错误)

我意识到问题是以下任何一项或全部:

我正在寻找的

  • 图标的大小,颜色和阴影将相似,但不能保证它们在上述任何方面都相同。 (注意: Angular 方向和比例应该保持一致。我不希望其中带有“+”的圆与模板匹配。我也不希望具有小“X”的大圆与之匹配。)
  • 我的模板不是正方形,我只是猜测透明像素将不包含在比赛中。
  • 鉴于上述两个问题,模板匹配可能是错误的方法。也许我需要使用其他方法来做到这一点?

  • 最终,我需要一些基本的帮助来解决我的匹配出了什么问题,以便至少可以恢复正确的方向。模板是否匹配正确的方法,但是我需要更改一些内容?还是我需要查看这些库中的其他功能之一?对于这项简单的任务,OpenCV(和EMGU)功能与AForge.net功能之间在功能上有什么不同吗?

    最佳答案

    在这种情况下,模板匹配是正确的选择,但是您必须正确地做到这一点:

  • 您的模板不符合您的要求。在第二张图像中,由于按钮的灰度值与背景中的某个位置更相似,因此效果不佳。如果要搜索白色十字,请使用白色十字作为模板,如下所示:

  • enter image description here
  • 不使用固定阈值,而是搜索最高响应点。

  • 通过这些准则,您可以找到按钮(红色小矩形):

    enter image description here

    enter image description here

    这是OpenCV(C++)中的代码,例如:
    #include <opencv2\opencv.hpp>
    using namespace cv;

    int main()
    {
    // Load template and image
    Mat3b templ = imread("path_to_template");
    Mat3b img = imread("path_to_image");

    // Convert to grayscale
    Mat1b img_gray;
    Mat1b templ_gray;
    cvtColor(img, img_gray, COLOR_BGR2GRAY);
    cvtColor(templ, templ_gray, COLOR_BGR2GRAY);

    // Match template
    Mat1f result;
    matchTemplate(img, templ, result, TM_CCOEFF_NORMED);

    // Find highest response
    Point maxLoc;
    minMaxLoc(result, NULL, NULL, NULL, &maxLoc);

    // Draw the red rectangle
    rectangle(img, Rect(maxLoc, templ.size()), Scalar(0,0,255), 2);

    // Show results
    imshow("Result", img);
    waitKey();

    return 0;
    }

    关于opencv - 在图像中查找图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34712480/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com