《OpenCV》——模版匹配

文章目录

什么是模版匹配?

  • 模板匹配是在一幅图像中寻找与另一幅模板图像最匹配部分的技术。OpenCV 提供了多种模板匹配的方法,它在目标检测、物体识别等众多计算机视觉任务中有广泛的应用。
  • 例如,你有一张包含多个物体的大图像,并且有一个小的物体图像作为模板,通过模板匹配可以找到大图像中与小模板图像相似的物体所在位置。

函数介绍

  • 在 OpenCV 中,模板匹配主要使用cv2.matchTemplate()函数。其基本语法如下:
python 复制代码
result = cv2.matchTemplate(image, templ, method)
  • image:是要在其中进行搜索的输入图像,它应该是 8 位或 32 位浮点数类型的图像。
  • templ:是模板图像,其大小应该小于输入图像,并且数据类型和输入图像相同。
  • method:是匹配方法,OpenCV 提供了多种匹配方法,如cv2.TM_SQDIFF(平方差匹配法,计算差值的平方,值越小匹配越好)、cv2.TM_CCORR(相关性匹配法,值越大匹配越好)、cv2.TM_CCOEFF(相关系数匹配法,值越大匹配越好,1 表示完美匹配, - 1 表示最差匹配)等。
    • TM_SQDIFF 平方差匹配法:该方法采用平方差来进行匹配;匹配越好,值越小;匹配越差,值越大。
    • TM_CCORR 相关匹配法:该方法采用乘法操作;数值越大表明匹配程度越好。
    • TM_CCOEFF 相关系数匹配法:数值越大表明匹配程度越好。
    • TM_SQDIFF_NORMED 归一化平方差匹配法,匹配越好,值越小;匹配越差,值越大。
    • TM_CCORR_NORMED 归一化相关匹配法,数值越大表明匹配程度越好。
    • TM_CCOEFF_NORMED 归一化相关系数匹配法,数值越大表明匹配程度越好。

实例

python 复制代码
kele = cv2.imread('kele.png')
template = cv2.imread('template.png')
cv2.imshow('kele',kele)
cv2.imshow('template',template)
cv2.waitKey(0)

h, w = template.shape[:2]
res = cv2.matchTemplate(kele, template, cv2.TM_CCOEFF_NORMED)   #返回匹配结果的矩阵,其中每个元素表示该位置与模板的匹配程度
# cv2.minMaxLoc可以获取矩阵中的最小值和最大值,以及最小值的索引号和最大值的索引号
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)  # 最小值、最大值、最小值位置、最大值位置
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
kele_template = cv2.rectangle(kele, top_left, bottom_right, (0, 255, 0), 2)  # 绘制矩形

cv2.imshow('kele_template', kele_template)
cv2.waitKey(0)

原图:

标签:

识别结果:

相关推荐
nvd114 分钟前
Flink 批处理驱动的湖仓 AI 财务研报流水线:从双流广播汇聚到 Agent 智能决策与原生 Iceberg 落盘全景实战
大数据·人工智能·flink
snhna26 分钟前
向量数据库深度实战:从 HNSW 到 pgvector、Milvus 选型与 RAG 落地
数据库·人工智能·python·postgresql·milvus
架构技术专栏27 分钟前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
点云-激光雷达-Slam-三维牙齿39 分钟前
100,000 Records CSV File - India Traffic Accident Analysis Dataset.7z
人工智能·数据集
TechWayfarer41 分钟前
精度极限的突破:AI与IPv6如何重塑高精度IP查询
人工智能·网络协议·tcp/ip·transformer
七十二时9561 小时前
视频掉帧怎么用AI补帧
人工智能
可达智灵1 小时前
信创适配|织灵 Coda Loom 2.0 完成银河麒麟服务器操作系统 V10、V11 适配认证
人工智能·可达智灵
Wx-bishekaifayuan1 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
人工智能·spring boot·后端·python·课程设计·express·旅游
loulanyue_1 小时前
从个人提效到团队可验证交付:中宏保险AI Coding流水线重塑与Qoder实战——读中宏保险AI架构总监王志宇2026云栖专场演讲
人工智能·架构
砚凝霜2 小时前
【软考信息安全】第十章 入侵检测概述与原理分类
人工智能·安全·数据挖掘