python cv2 matchtemplate详解
时间: 2023-07-24 15:07:31 浏览: 63
matchTemplate是OpenCV中的一个函数,用于在图像中搜索指定的模板。该函数将模板与输入图像的每个可能位置进行比较,并返回一个匹配度图像,其中每个像素表示该位置与模板的匹配程度。匹配程度越高,像素值越大。
matchTemplate函数的参数如下:
`cv2.matchTemplate(image, templ, method, result=None, mask=None)`
- image: 输入图像,可以是任意维度,但是必须是8位或32位浮点类型。
- templ: 模板图像,必须是8位或32位浮点类型,且大小不超过输入图像。如果模板大小与输入图像大小不同,需要使用resize函数进行缩放。
- method: 比较方式,有6种可选,分别为:cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED, cv2.TM_CCORR, cv2.TM_CCORR_NORMED, cv2.TM_CCOEFF, cv2.TM_CCOEFF_NORMED。
- result: 输出的匹配度图像,大小与输入图像相同,可以为None,此时会创建一个临时数组。
- mask: 可选的掩码图像,用于指定哪些像素需要进行比较,哪些像素不需要。可以为None,此时所有像素都进行比较。
返回值为匹配度图像,大小与输入图像相同。
下面是一个示例代码,用于在一幅图像中搜索指定的模板,并绘制匹配度最高的位置:
```python
import cv2
import numpy as np
# 读入输入图像和模板图像
img = cv2.imread('input.jpg')
template = cv2.imread('template.jpg')
# 获取模板图像的宽度和高度
w, h = template.shape[:2]
# 使用cv2.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('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码中,我们使用了cv2.TM_CCOEFF_NORMED方法进行模板匹配,该方法是基于相关系数的匹配方法,可以有效处理光照变化等情况。通过minMaxLoc函数获取匹配度最高的位置,并在输入图像中绘制矩形框。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)