python图片匹配方法详解编程语言

python图片匹配方法

装opencv

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

然后先写个显示图片

#!/usr/bin/python 
# -*- coding: UTF-8 -*- 
import cv2 
#读取图像,支持 bmp、jpg、png、tiff 等常用格式 
image = cv2.imread("i://111.png") 
#创建窗口并显示图像 
cv2.imshow("11",image) 
cv2.waitKey(0) 
#释放窗口 
cv2.destroyAllWindows()
import cv2 as cv 
import numpy as np 
 
target = cv.imread("i://111.png") 
tpl = cv.imread("i://111x.png") 
methods = [cv.TM_SQDIFF_NORMED, cv.TM_CCORR_NORMED, cv.TM_CCOEFF_NORMED] 
th, tw = tpl.shape[:2] 
for md in methods: 
        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) 
        print("左上角坐标") 
        print(tl); 
        print("右下角坐标") 
        print(br); 
        cv.rectangle(target, tl, br, [0, 0, 0]) 
        cv.imshow("pipei"+np.str(md), target) 
        # break; 
cv.waitKey(0) 
cv.destroyAllWindows()

这里用了3个方法遍历匹配 

 有缩进的时候 注意复制的时候 几块几块来复制

因为template match都能匹配到 不管有没有 

所以 要template match要判断有没有找到匹配的东西按照获取到的坐标在不在那个位置。。 用 TM_SQDIFF_NORMED比较精确

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/18937.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论