当前位置: 首页 > article >正文

OpenCV计算机视觉 07 图像的模块匹配

在做目标检测、图像识别时,我们经常用到模板匹配,以确定模板在输入图像中的可能位置

API函数

cv2.matchTemplate(image, templ, method, result=None, mask=None)

参数含义:

image:待搜索图像

templ:模板图像

method:计算匹配程度的方法,可以有:

        TM_SQDIFF 平方差匹配法:该方法采用平方差来进行匹配;匹配越好,值越小;匹配越差,值越大。

        TM_CCORR 相关匹配法:该方法采用乘法操作;数值越大表明匹配程度越好。         TM_CCOEFF 相关系数匹配法:数值越大表明匹配程度越好。

        TM_SQDIFF_NORMED 归一化平方差匹配法,匹配越好,值越小;匹配越差,值越大。

        TM_CCORR_NORMED 归一化相关匹配法,数值越大表明匹配程度越好。

    -> TM_CCOEFF_NORMED 归一化相关系数匹配法,数值越大表明匹配程度越好。

比如我要在可口可乐瓶中匹配出如下的可口可乐商标,这么做呢

可口可乐瓶:

要匹配的商标:

import cv2
# 读取名为'cola.png'的图像作为原图
kele = cv2.imread('cola.png')  
# 读取名为'co_t.png'的图像作为模板
template = cv2.imread('template.png')  
​
cv2.imshow('kele', kele)  # 显示原图
cv2.imshow('c', template)  # 显示模板
cv2.waitKey(0)  # 等待按键
​
h, w = template.shape[:2]  # 获取模板的高度和宽度
# 在原图中匹配模板
res = cv2.matchTemplate(kele, template, cv2.TM_CCOEFF_NORMED)
# 获取匹配结果中的最小值、最大值及对应的位置
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('k', kele_template)  # 显示绘制了矩形的原图
cv2.waitKey(0)  # 等待按键

输出:


http://www.kler.cn/a/488221.html

相关文章:

  • web-app uniapp监测屏幕大小的变化对数组一行展示数据作相应处理
  • 代码随想录算法训练营day27
  • 人工智能-机器学习之多元线性回归(项目实践一)
  • 51单片机——定时器中断(重点)
  • uniapp 导入uview-plus,使用组件出现,页面出现<up-parse>元素不存在,请检查你的代码
  • 基于RK3568/RK3588大车360度环视影像主动安全行车辅助系统解决方案,支持ADAS/DMS
  • 从configure.ac到构建环境:解析Mellanox OFED内核模块构建脚本
  • LeetCode 3042. Count Prefix and Suffix Pairs I
  • 资源编排:云时代的高效管理工具,助力企业智能运维
  • react ts 定义基本类型,组件通过ref调用时类型提示
  • 如何解决 VS Code 调试时无法查看 std 中变量的问题
  • pgsql 连接数查看、释放
  • 【AniGS】论文阅读
  • Docker 通过创建Dockerfile 部署Jar包
  • MATLAB对文件处理
  • springboot整合gateway
  • 多云架构,JuiceFS 如何实现一致性与低延迟的数据分发
  • [IoT]解决方案设计:智能农业监控系统
  • pytorch模型的保存失敗しましたが、
  • JVM生产环境常用参数配置及调优建议
  • vue3+ElementPlus+VueCropper实现上传图片
  • Day97 minio
  • 详细分析 创建并上传到 GitHub 仓库
  • 【每日学点鸿蒙知识】调试、网络、缓存、富文本编辑等
  • Unity学习之UGUI进阶
  • android studio使用DataBinding