[Tadeas] template matching matchTemplate Introduction

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 matching algorithm works
  • Drawback : template match has its own limitations, mainly in that it can only move in parallel, if the rotation or change the size of the original image to match the target occurs, the algorithm is not valid.

Guess you like

Origin www.cnblogs.com/tadeas/p/11444292.html