前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >匹配图像

匹配图像

作者头像
裴来凡
发布2022-05-28 16:07:55
4580
发布2022-05-28 16:07:55
举报
文章被收录于专栏:图像处理与模式识别研究所
代码语言:javascript
复制
import cv2
import numpy as np
from matplotlib import pyplot as plt
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png',0)#原始图像
template=cv2.imread('C:/Users/xpp/Desktop/temp.png',0)#模板图像
th,tw=template.shape[::]#模板图像的宽度w和高度h
rv=cv2.matchTemplate(img,template,cv2.TM_SQDIFF)#cv2.TM_SQDIFF匹配方法
minVal,maxVal,minLoc,maxLoc=cv2.minMaxLoc(rv)#查找最值(极值)所在位置
topLeft=minLoc#以topLeft作为模板匹配位置的左上角坐标
bottomRight=(topLeft[0]+tw,topLeft[1]+th)#模板匹配位置的右下角坐标
cv2.rectangle(img,topLeft,bottomRight,255,3)#topLeft是矩形顶点,bottomRight是对角顶点,255是灰度级,3矩形边线宽度
plt.subplot(121),plt.imshow(rv,cmap='gray')
plt.title('Matching Result'),plt.xticks([]),plt.yticks([])
plt.subplot(122),plt.imshow(img,cmap='gray')
plt.title('Detected Point'),plt.xticks([]),plt.yticks([])
plt.show()

算法:图像匹配的查找方式是将模板图像在输入图像内从左上角开始滑动,逐个像素遍历整幅输入图像,从而查找与模板图像最匹配的部分。

  • 首先将模板图像置于输入图像的左上角
  • 模板图像向右移动
  • 模板图像向下移动

匹配方法:

  • 当method为cv2.TM_SQDIFF_*时,rv值越小,匹配效果越好
  • 当method为cv2.TM_CCORR_*和cv2.TM_CCOEFF_*时,rv值越大,匹配效果越好。

注意:输入图像是8位或32位浮点型图像;模板图像尺寸小于或等于输入图像。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档