OpenCV 4.10.0
开源计算机视觉
|
模板匹配是一种在较大图像中搜索和查找模板图像位置的方法。OpenCV 附带了一个函数 cv.matchTemplate() 来实现这一目的。它只需将模板图像滑过输入图像(如在二维卷积中)并对比模板和模板图像下输入图像的块。OpenCV 中实现了多种对比方法(你可以查看文档了解更多详情)。它返回一个灰度图像,其中每个像素表示像素邻域与模板的匹配程度。
如果输入图像的大小为 (WxH),模板图像的大小为 (wxh),输出图像的大小将为 (W-w+1, H-h+1)。获得结果后,你可以使用 cv.minMaxLoc() 函数来查找最大/最小值所在位置。将其作为矩形的左上角,取 (w,h) 作为矩形的宽度和高度。该矩形即为你的模板区域。
我们使用该函数:cv.matchTemplate (image, templ, result, method, mask = new cv.Mat())
image | 搜索正在运行中的图像。它必须是 8 位或 32 位浮点。 |
templ | 搜索的模板。它必须不大于源图像且具有相同的数据类型。 |
result | 对比结果的映射。它必须是单通道 32 位浮点。 |
method | 指定对比方法的参数(参见 cv.TemplateMatchModes)。 |
mask | 要搜索的模板的掩码。它必须具有与 templ 相同的数据类型和大小。默认情况下未设置。 |