OpenCV模板匹配

模板匹配和霍夫变换

一.什么是模板匹配

二.代码解析

Fu Xianjun. All Rights Reserved.
一.什么是模板匹配
模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。

二.代码解析
1.需要导入的库
下面展示一些 内联代码片

import cv2
import numpy as np
#Matplotlib是RGBimport matplotlib.pyplot as plt
%matplotlib inline 

 #定义显示图片的函数,避免重复代码
 def cv_show(name, img):   
  cv2.imshow(name, img)    
  cv2.waitKey()    
  cv2.destroyAllWindows()

2.读取模板图片

template = cv2.imread("lena_eye.jpg")
cv_show("template",template)

3.读取检测图片

img = cv2.imread("lena.jpg")
cv_show("img", img)

4.获取模板的大小

h, w = template.shape[:2]

5.进行匹配

#开始模板匹配过程(采用计算归一化平方不同,计算值越接近0,越相关)
res = cv2.matchTemplate(img, template, cv2.TM_SQDIFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
top_left = min_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
#画出检测到的部分
imgcpy = img.copy()
cv2.rectangle(imgcpy, top_left, bottom_right, 255, 2)
#因为matplotlib显示为RGB图像,做一次色彩空间空间转换imgcpy = cv2.cvtColor(imgcpy, cv2.COLOR_BGR2RGB)
plt.imshow(imgcpy, cmap='gray')

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值