📜  在Python中使用 OpenCV 进行模板匹配(1)

📅  最后修改于: 2023-12-03 15:23:26.030000             🧑  作者: Mango

在Python中使用 OpenCV 进行模板匹配

OpenCV 是一个开源的计算机视觉库,支持图像处理、计算机视觉、机器学习等多个领域,其中模板匹配也是常用的功能之一。下面将介绍如何在Python中使用OpenCV进行模板匹配。

什么是模板匹配

模板匹配是一种在一张图像中查找并匹配模板图像的技术,用于检测目标图像中是否存在模板图像,并返回匹配的位置信息。模板匹配在实际应用中广泛使用,如图像识别、人脸识别、字符识别等。

如何使用OpenCV进行模板匹配

使用OpenCV进行模板匹配比较简单,可以通过cv2.matchTemplate函数实现。该函数的参数包括查找图像、模板图像以及匹配方法等。接下来我们来看一下示例代码:

import cv2
import numpy as np

# 加载查找图像和模板图像
img = cv2.imread('source.jpg', 0)
template = cv2.imread('template.jpg', 0)

# 获取模板图像的宽高
w, h = template.shape[::-1]

# 进行模板匹配
res = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where(res >= threshold)

# 绘制匹配结果
for pt in zip(*loc[::-1]):
    cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2)

# 显示匹配结果
cv2.imshow('detected', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
函数说明

函数cv2.matchTemplate的参数说明如下:

matchTemplate(image, templ, method[, result]) -> result
  • image:查找图像。
  • templ:模板图像。
  • method:匹配方法,有以下几种:
    • TM_SQDIFF:平方差匹配法。
    • TM_SQDIFF_NORMED:归一化平方差匹配法。
    • TM_CCORR:相关匹配法。
    • TM_CCORR_NORMED:归一化相关匹配法。
    • TM_CCOEFF:相关系数匹配法。
    • TM_CCOEFF_NORMED:归一化相关系数匹配法。
  • result:输出的结果图片。
结语

本文介绍了如何在Python中使用OpenCV进行模板匹配,通过cv2.matchTemplate函数实现。希望对大家有所帮助!