提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、opencv模板匹配介绍
- 二、使用代码
- 三、效果
前言
在现代计算机视觉领域,模板匹配是一种基础而强大的技术,它能够帮助我们在图像中找到预定义的形状或模式。OpenCV作为Python中广泛使用的计算机视觉库,提供了丰富的API来支持这一功能。在这篇博客中,我们将探讨OpenCV中的cv2.matchTemplate函数,它是一个核心的模板匹配工具,用于在图像中寻找与模板图像相匹配的区域。我们将通过具体的代码示例来演示这一过程,帮助读者更好地理解和掌握OpenCV中模板匹配的用法。
一、opencv模板匹配介绍
模板匹配(Template Matching)是一种在图像处理和计算机视觉中常用的技术,它涉及到在给定的图像中搜索与预定义的模板图像相似的区域。这种技术通常用于图像识别、物体检测、医学图像分析等领域。其基本原理是使用一个较小的图像(模板)作为参考,然后在另一个较大的图像(搜索图像)中滑动这个模板,比较模板与搜索图像重叠区域之间的相似性。这种相似性可以通过不同的方法来计算,如相关性、平方差等。在opencv中集成了蒙版匹配的api:cv2.matchTemplate
cv2.matchTemplate 是 OpenCV 库中的一个函数,它用于在给定的图像中搜索与预定义模板图像相似的区域。这个函数在图像处理和计算机视觉领域中非常有用,特别是在物体检测、图像识别和医学图像分析等方面。以下是 cv2.matchTemplate 函数的详细介绍:cv2.matchTemplate(image, template, method)
输入参数:
image: 待搜索的图像,通常是一个较大的图像。
template: 用于匹配的模板图像,通常是一个较小的图像。
method: 用于比较模板和搜索图像的匹配方法。
其中OpenCV 提供了多种method,每种方法都有其特定的应用场景:
cv2.TM_CCOEFF: 相关系数匹配,适合于检测物体。
cv2.TM_CCOEFF_NORMED: 归一化的相关系数匹配,适合于检测物体。
cv2.TM_CCORR: 相关性匹配,适合于检测特征。
cv2.TM_CCORR_NORMED: 归一化的相关性匹配,适合于检测特征。
cv2.TM_SQDIFF: 平方差匹配,适合于检测特征。
cv2.TM_SQDIFF_NORMED: 归一化的平方差匹配,适合于检测特征。
函数返回一个结果矩阵 result,其中每个元素表示模板图像与搜索图像相应位置匹配的结果。这个结果矩阵是一个二维数组,其中每个元素代表模板图像在搜索图像中的一个位置(行和列)与模板图像的匹配程度。结果矩阵的形状与搜索图像的形状相同,但是它的每个元素是一个浮点数,表示模板图像与搜索图像相应位置的匹配度。这个匹配度可以是相关系数、相关性、平方差等,具体取决于 method 参数的选择。
二、使用代码
import cv2
import numpy as np
# 读取图像和模板
image = cv2.imread(r'F:\cv_traditional\R-C (3).jfif', cv2.IMREAD_COLOR)
template = cv2.imread(r'F:\cv_traditional\R-C (3).png', cv2.IMREAD_COLOR)
# 将图像和模板转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
gray_template = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY)
# 应用模板匹配
method = cv2.TM_CCOEFF_NORMED # : 归一化的相关系数匹配,适合于检测物体
result = cv2.matchTemplate(gray_image, gray_template, method)
# 查找最佳匹配位置
threshold = 0.9 # 设置一个阈值来确定匹配的可靠性
loc = np.where(result >= threshold)
# 遍历所有匹配位置
for pt in zip(*loc[::-1]):
# 在原图上绘制矩形框
cv2.rectangle(image, pt, (pt[0] + template.shape[1], pt[1] + template.shape[0]), (0, 0, 255), 2)
image=cv2.resize(image,(0,0),fx=0.5,fy=0.5)
# 显示结果
cv2.imshow('Matched', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
三、效果
原图:
蒙版图:
匹配结果图: