写一个带旋转角度的模板匹配
时间: 2024-05-12 20:20:44 浏览: 19
以下是Python实现的带旋转角度的模板匹配代码:
```python
import cv2
import numpy as np
# 读取原始图像和模板图像
img = cv2.imread('original_image.jpg', 0)
template = cv2.imread('template_image.jpg', 0)
# 获取模板图像的高度和宽度
h, w = template.shape[:2]
# 对模板图像进行旋转
center = (w // 2, h // 2)
M = cv2.getRotationMatrix2D(center, 45, 1)
template = cv2.warpAffine(template, M, (w, h))
# 进行模板匹配
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('Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码首先读取了原始图像和模板图像,然后获取了模板图像的高度和宽度。接着使用`cv2.getRotationMatrix2D`函数对模板图像进行旋转,并使用`cv2.warpAffine`函数将旋转后的模板图像转换为矩阵形式。然后使用`cv2.matchTemplate`函数进行模板匹配,并设置匹配阈值。最后使用`np.where`函数获取匹配结果的坐标,并在原始图像中绘制矩形框。