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')

OpenCV模板匹配_第1张图片

你可能感兴趣的:(opencv,python,计算机视觉,机器学习)