#模块匹配
鉴于上文中的图文比对模块速度较慢,选择新的比对方式:
cv2.matchTemplate(source, template, match_method)
以上cv2中的matchTemplate参数中:从source大图中找到template小区域。
这里找了大部分代码都是找到并画出来,很少有提到未找到的情况。只是在方法(match_method)中提到各种匹配结果说什么方差法越小越匹配,相关性越大越匹配。
看的我一脸懵逼,所以动手来试一下看看结果。
参数method:指定匹配方法,有如下几种:
CV_TM_SQDIFF:平方差匹配法
CV_TM_SQDIFF_NORMED:归一化平方差匹配法
CV_TM_CCORR:相关匹配法
CV_TM_CCORR_NORMED:归一化相关匹配法
CV_TM_CCOEFF:系数匹配法
CV_TM_CCOEFF_NORMED:化相关系数匹配法
这里引用一个minMaxLoc()函数,里面好像存储着什么向量,什么坐标之类的。我这里暂时用不到,直接取里面的max_val和min_val。查看他们的值来看比对的结果。
import cv2 as cv
img = cv.imread("D://5.png") #从这个图中找到我的template1
my_template1 = cv.imread('D://2.png') #特征图
matches = cv.matchTemplate(img, my_template1, cv.TM_CCORR_NORMED)
#调用cv2.matchTemplate进行比对,比CV2.SIFT类似
min_val, max_val, min_loc, max_loc = cv.minMaxLoc(matches)
#找到最大最小值
p