OpenCV 4.11.0
开源计算机视觉库
加载中…
搜索中…
未找到匹配项
模板匹配

目标

理论

模板匹配是一种在较大图像中搜索和查找模板图像位置的方法。OpenCV 提供了函数cv.matchTemplate() 用于此目的。它简单地将模板图像在输入图像上滑动(如同二维卷积),并比较模板和输入图像下模板图像下的图像块。OpenCV 中实现了多种比较方法。(您可以查看文档了解更多详细信息)。它返回一个灰度图像,其中每个像素表示该像素的邻域与模板的匹配程度。

如果输入图像大小为 (WxH),模板图像大小为 (wxh),则输出图像大小为 (W-w+1, H-h+1)。获得结果后,可以使用cv.minMaxLoc() 函数查找最大/最小值的位置。将其作为矩形的左上角,并将 (w,h) 作为矩形的宽度和高度。该矩形即为模板区域。

注意
如果使用 cv.TM_SQDIFF 作为比较方法,最小值表示最佳匹配。

OpenCV 中的模板匹配

我们使用函数:cv.matchTemplate (image, templ, result, method, mask = new cv.Mat())

参数
image进行搜索的图像。必须是 8 位或 32 位浮点数。
templ搜索模板。它必须不大于源图像并且具有相同的数据类型。
result比较结果图。必须是单通道 32 位浮点数。
method指定比较方法的参数(参见 cv.TemplateMatchModes)。
mask搜索模板的掩码。它必须与 templ 具有相同的数据类型和大小。默认情况下未设置。

尝试一下