opencv的matchtemplate怎么用
时间: 2023-09-04 07:16:48 浏览: 44
matchTemplate()是OpenCV中用于模板匹配的函数。它的基本语法如下:
```
cv2.matchTemplate(image, templ, method[, result[, mask]])
```
- image: 输入图像。
- templ: 模板图像。
- method: 匹配方法。常用的有6种:cv2.TM_CCOEFF, cv2.TM_CCOEFF_NORMED, cv2.TM_CCORR, cv2.TM_CCORR_NORMED, cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED。
- result: 输出图像,它的大小必须与输入图像进行匹配。
- mask: 掩码图像。
下面是一个简单的示例,演示如何使用matchTemplate()函数进行模板匹配:
```python
import cv2
# 读取输入图像和模板图像
img = cv2.imread('input.jpg')
template = cv2.imread('template.jpg')
# 获取模板图像的宽度和高度
w, h = template.shape[:-1]
# 使用TM_CCOEFF_NORMED方法进行模板匹配
res = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)
# 获取图像中最大匹配值的位置
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
# 绘制矩形框并显示结果
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
cv2.rectangle(img, top_left, bottom_right, (0,0,255), 2)
cv2.imshow('Matched Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们将输入图像和模板图像读入内存,并使用matchTemplate()函数获取模板匹配结果。然后,我们使用minMaxLoc()函数获取最大匹配值的位置,并在输入图像中绘制矩形框。最后,我们使用imshow()函数显示结果。