【问题标题】:Matching template images with masks using OpenCV and C++使用 OpenCV 和 C++ 将模板图像与蒙版匹配
【发布时间】:2013-04-08 10:23:32
【问题描述】:

如何在 OpenCV 和 C++ 中使用 matchTemplate() 匹配蒙版图像?

这是我的蒙版模板图像:

这是我的源图片:

【问题讨论】:

标签: c++ opencv mask matching matchtemplate


【解决方案1】:

matchTemplate 的第五个参数是一个mask 数组,您可以将其用于此目的。在您的情况下,您需要一个 binary 掩码。也就是说,Mat 带有:

  • 深度CV_8U,和
  • 尺寸等于您的模板图像,并且
  • 您希望从模板中忽略的像素设置为 0,并且
  • 要使用的像素设置为非零值(通常为 1)

【讨论】:

    【解决方案2】:

    看看opencv example。你必须调用matchTemplate 函数:

    matchTemplate( img, templ, result, match_method );
    

    【讨论】:

    • @Sadir:我看过那个例子,之前使用过 matchTemplate(),但我想知道匹配被蒙版的模板图像的最佳方法。
    • 我不明白你的意思>“我想知道匹配蒙版的模板图像的最佳方法”。
    • 如果您查看我的问题中的模板图像,您会看到它有黑色像素。在蒙版图像中,黑色像素将是“透明的”,匹配时只会考虑值 > 0 的像素。
    • matchTemplate 做了类似卷积的操作,它在图像上滑动窗口并应用卷积。所以,我认为不可能按照你想要的方式将模板图像指定为“掩码”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    相关资源
    最近更新 更多