写一份模板匹配的代码
时间: 2023-07-10 12:13:41 浏览: 113
好的,以下是一份基于OpenCV的模板匹配代码示例:
```python
import cv2
import numpy as np
# 读取原图和模板图
img = cv2.imread('original.jpg', 0)
template = cv2.imread('template.jpg', 0)
# 获取模板图的高度和宽度
h, w = template.shape[:2]
# 使用 TM_CCOEFF_NORMED 方法进行模板匹配
res = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)
# 设定阈值
threshold = 0.8
# 使用 numpy 库中的 where 函数获取坐标
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.imread()` 用于读取图片,`cv2.matchTemplate()` 用于进行模板匹配,`cv2.rectangle()` 则是用于在原图上标记匹配区域。该代码示例中使用的是基于归一化互相关的 TM_CCOEFF_NORMED 方法,通过调整阈值可以控制匹配的精度。
阅读全文