python 模板匹配多个物体

参考:

https://www.jianshu.com/p/c20adfa72733

 

  • 平方差匹配CV_TM_SQDIFF:用两者的平方差来匹配,最好的匹配值为0
  • 归一化平方差匹配CV_TM_SQDIFF_NORMED
  • 相关匹配CV_TM_CCORR:用两者的乘积匹配,数值越大表明匹配程度越好
  • 归一化相关匹配CV_TM_CCORR_NORMED
  • 相关系数匹配CV_TM_CCOEFF:用两者的相关系数匹配,1表示完美的匹配,-1表示最差的匹配
  • 归一化相关系数匹配CV_TM_CCOEFF_NORMED

 

 

匹配多个物体
前面我们是找最大匹配的点,所以只能匹配一次。我们可以设定一个匹配阈值来匹配多次:
# 1.读入原图和模板
img_rgb = cv2.imread('mario.jpg')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('mario_coin.jpg', 0)
h, w = template.shape[:2]

# 2.标准相关模板匹配
res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
threshold = 0.8 

# 3.这边是Python/Numpy的知识,后面解释
loc = np.where(res >= threshold)  # 匹配程度大于%80的坐标y,x
for pt in zip(*loc[::-1]):  # *号表示可选参数
    right_bottom = (pt[0] + w, pt[1] + h)
    cv2.rectangle(img_rgb, pt, right_bottom, (0, 0, 255), 2)

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
物体匹配是一个复杂的问题,需要考虑物体的形状、大小、颜色、纹理等特征,以及它们在图像中的位置关系和空间关系等。常见的物体匹配算法包括基于特征的方法和基于深度学习的方法。 基于特征的方法:常用的特征包括颜色直方图、形状描述符、纹理特征等。可以使用这些特征来描述每个物体,并计算它们之间的相似度,从而进行匹配。常见的基于特征的物体匹配算法包括SIFT、SURF、ORB等。 基于深度学习的方法:深度学习在图像处理领域表现出色,特别是在物体匹配和检测方面。常用的深度学习模型包括卷积神经网络(CNN)、循环神经网络(RNN)等。使用深度学习模型可以从图像中提取特征,并将不同物体之间的相似性进行比较,从而进行匹配。常见的基于深度学习的物体匹配算法包括Siamese网络、Triplet网络等。 下面是一个基于特征的物体匹配示例代码,使用OpenCV库实现: ```python import cv2 import numpy as np # 读入模板图像和待匹配图像 template = cv2.imread('template.jpg', 0) target = cv2.imread('target.jpg', 0) # 获取模板图像的宽度和高度 w, h = template.shape[::-1] # 使用matchTemplate函数进行匹配 res = cv2.matchTemplate(target, template, cv2.TM_CCOEFF_NORMED) # 设置匹配阈值 threshold = 0.8 # 找出匹配程度大于阈值的位置 loc = np.where(res >= threshold) # 在原始图像中标记匹配的位置 for pt in zip(*loc[::-1]): cv2.rectangle(target, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2) # 显示匹配结果 cv2.imshow('result', target) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码中,首先读入了模板图像和待匹配图像,然后使用matchTemplate函数对它们进行匹配,得到匹配的结果res。接着设置了一个匹配阈值,找出匹配程度大于阈值的位置loc,并在原始图像中标记匹配的位置。最后显示匹配结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值