根据不同匹配结果间的距离远近进行去重操作。
检测效果
源码
import cv2
import numpy as np
import time
def get_ready():
#录入模板,主函数仅执行一次,节省资源
template = cv2.imread('./template.png',0)
return template
def get_img(cap):
#从摄像头实时读取一帧图像
_,img_bgr = cap.read()
return img_bgr
def match_template(img_bgr,template):
#调用opencv内部模块进行模板匹配
img_gray = cv2.cvtColor(img_bgr,cv2.COLOR_BGR2GRAY)
res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.5 #匹配相似度阈值,越高越精确
loc = np.where(res>=threshold) #numpy进行筛选匹配
loc1 = [] #用于录入目标坐标点
for i in range(len(