需要源码和图片请点赞关注收藏后评论区留言私信~~~
一、多模板匹配
匹配过程中同时查找多个模板的操作叫做多模板匹配,多模板匹配实际上就是进行了n次单模板多目标匹配操作,n的数量为模板总数
实战1:同时匹配三个不同的模板
每一个模板都要做一次单模板多目标匹配,最后把所有模板的匹配结果汇总到一起,单模板多目标匹配的过程可以封装成一个方法,方法参数为模板和原始图像,方法内部将计算结果再加工以下,直接返回所有红框左上角和右下角两点横纵坐标的列表,在方法之外,将所有模板计算得出的坐标汇总到一个列表中,按照这些汇总的坐标一次性将所有红框都绘制出来 效果如下
其中模板就是里面的三个图像
部分代码如下
import cv2
def myMatchTemplate(img, templ): # 自定义方法:获取模板匹配成功后所有红框位置的坐标
width height, c = templ.hape # 获取模板图像的宽度、高度和通道数
results = cv2.matchTemplate(img, templ, cv2.TM_CCOEFF_NORMED) # 按照标准相关系数匹配
loc = list() # 红框的列表
for i in range(len(results)): # 遍历结果数组的行 if results[i][j 0.99: # 如果相关系数大于0.99则认为匹配成功
# 在列表中添加匹配 j + width, i + height))
return lo
img = cv