Tadeas模板匹配matchTemplate介绍

Posted tadeas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tadeas模板匹配matchTemplate介绍相关的知识,希望对你有一定的参考价值。

result = cv.matchTemplate(target,tpl,md)
opencv的目标匹配函数为matchTemplate,函数原型为:matchTemplate(image, templ, method[, result[, mask]]) -> result
image参数表示待搜索源图像,必须是8位整数或32位浮点。
templ参数表示模板图像,必须不大于源图像并具有相同的数据类型。
method参数表示计算匹配程度的方法。
result参数表示匹配结果图像,必须是单通道32位浮点。为一些列图像的top_left的坐标和相关性对应关系。
min_val,max_val,min_loc,max_loc = cv.minMaxLoc(result)
result 可通过该函数获取对应最大和最小匹配值和对应的位置。
函数minMaxLoc原型为:minMaxLoc(src[, mask]) -> minVal, maxVal, minLoc, maxLoc
src:参数表示输入单通道图像。
mask:表示用于选择子数组的可选掩码。
minVal:表示返回的最小值,如果不需要,则使用NULL。
maxVal:表示返回的最大值,如果不需要,则使用NULL。
minLoc:表示返回的最小位置的指针(在2D情况下); 如果不需要,则使用NULL。
maxLoc:表示返回的最大位置的指针(在2D情况下); 如果不需要,则使用NULL。
常用的method: cv2.TM_CCOEFF、cv2.TM_CCOEFF_NORMED、cv2.TM_CCORR、cv2.TM_CCORR_NORMED、cv2.TM_SQDIFF', 'cv2.TM_SQDIFF_NORMED。
其中:cv2.TM_SQDIFF和cv2.TM_SQDIFF_NORMED对应的相关性越小,匹配度越高;其他的算法相关性越大,匹配度越高。
这些算法的匹配方式分别是:
- TM_SQDIFF是平方差匹配
- TM_SQDIFF_NORMED是标准平方差匹配
- TM_CCORR是相关性匹配
- TM_CCORR_NORMED是标准相关性匹配
- TM_CCOEFF是相关性系数匹配
- TM_CCOEFF_NORMED是标准相关性系数匹配 
技术图片 $ $ 6中匹配算法的原理
  • 缺点:模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。

以上是关于Tadeas模板匹配matchTemplate介绍的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV-模板匹配cv::matchTemplate

Python 机器视觉 - 基于opencv图像模板匹配实现的简单人脸匹配实例演示,matchTemplate的6大模板匹配算法

Python 机器视觉 - 基于opencv图像模板匹配实现的简单人脸匹配实例演示,matchTemplate的6大模板匹配算法

Opencv matchTemplate 不匹配

在 OpenCV 中与屏幕捕获一起使用的函数 matchTemplate

实战 | OpenCV实现多角度模板匹配(详细步骤 + 源码)