opencv模板匹配
时间: 2023-06-28 18:13:38 浏览: 93
OpenCV模板匹配是一种基于图像相似度的算法,可用于在图像中查找特定模式的位置。模板匹配算法的基本思想是在输入图像中滑动一个固定大小的窗口,并计算该窗口与模板的相似度得分。可以使用不同的相似度度量方法,例如平方差和相关性等。
以下是一个基本的模板匹配示例的代码:
```python
import cv2
import numpy as np
# 读取输入和模板图像
img = cv2.imread('input_image.jpg')
template = cv2.imread('template_image.jpg')
# 获取模板图像的尺寸
h, w = template.shape[:2]
# 应用模板匹配算法
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('Matched image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们首先读取输入和模板图像,然后使用`matchTemplate()`函数计算输入图像中所有可能的匹配位置的相似度得分。接着,我们设置一个匹配阈值,找到所有得分大于该阈值的像素位置,并在输入图像中绘制矩形框标记匹配位置。最后,我们显示匹配结果。
阅读全文