OpenCV  4.10.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 相同的数据类型和大小。默认情况下未设置。

试用