python實現opencv學習十三:模板匹配
阿新 • • 發佈:2019-02-06
模板匹配:通俗講就是以圖找圖,通過圖中的一部分來找它在圖中的位置
通過三種方式來匹配:cv.TM_SQDIFF_NORMED, cv.TM_CCORR_NORMED, cv.TM_CCOEFF_NORMED
程式碼如下:
# -*- coding=GBK -*- import cv2 as cv import numpy as np #模版匹配 def template_image(): tpl = cv.imread("C://2.jpg") target = cv.imread("C://1.jpg") cv.imshow("模板", tpl) cv.imshow("原圖", target) methods = [cv.TM_SQDIFF_NORMED, cv.TM_CCORR_NORMED, cv.TM_CCOEFF_NORMED] th, tw = tpl.shape[:2] for md in methods: print(md) result = cv.matchTemplate(target, tpl, md) min_val, max_val, min_loc, max_loc = cv.minMaxLoc(result) if md == cv.TM_SQDIFF_NORMED: tl = min_loc else: tl = max_loc br = (tl[0]+tw, tl[1]+th) cv.rectangle(target, tl, br, (0, 0, 255), 2) cv.imshow("匹配"+np.str(md), target) template_image() cv.waitKey(0) cv.destroyAllWindows()
執行結果如下
原圖和匹配模版
匹配結果