python matchtemplate函数
时间: 2023-09-18 13:14:42 浏览: 78
`matchTemplate` 是 OpenCV 库中的一个函数,用于在一个大图中查找特定模板的位置。
函数原型:
```python
cv2.matchTemplate(image, templ, method[, result]) -> result
```
参数说明:
- `image`:大图,要在其中查找模板。
- `templ`:模板图像,要在大图中查找的图像。
- `method`:匹配方法,用于确定模板和大图之间的匹配程度。可以是以下方法之一:
- `cv2.TM_CCOEFF`:系数匹配法。
- `cv2.TM_CCOEFF_NORMED`:标准化系数匹配法。
- `cv2.TM_CCORR`:相关匹配法。
- `cv2.TM_CCORR_NORMED`:标准化相关匹配法。
- `cv2.TM_SQDIFF`:平方差匹配法。
- `cv2.TM_SQDIFF_NORMED`:标准化平方差匹配法。
- `result`(可选):输出图像,表示匹配结果。
返回值:
- `result`:匹配结果图像。
使用示例:
```python
import cv2
import numpy as np
# 读取大图和模板图像
img = cv2.imread('image.jpg')
template = cv2.imread('template.jpg')
# 获取模板图像的宽度和高度
w, h = template.shape[:2]
# 使用平方差匹配法查找模板在大图中的位置
result = cv2.matchTemplate(img, template, cv2.TM_SQDIFF)
# 找到匹配程度最高的位置
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
top_left = min_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()
```
阅读全文