使用python opencv 进行linemod模板匹配,并显示匹配结果图像
时间: 2024-02-01 12:17:00 浏览: 235
opencv+python 模板匹配实现.zip
4星 · 用户满意度95%
好的,下面是代码示例:
```python
import cv2
import numpy as np
# 读取模板图像和场景图像
template = cv2.imread('template.png', 0)
scene = cv2.imread('scene.png', 0)
# 初始化LineMOD算法
detector = cv2.linemod.getDefaultLINE()
# 添加模板
detector.addTemplate(template, 'template')
# 进行匹配
matches, _ = detector.match(scene, threshold=80)
# 绘制匹配结果
result = np.copy(scene)
for match in matches:
x, y = match.x, match.y
for template_match in match.template_matches:
angle = template_match.angle
scale = template_match.scale
dx = int(scale * np.cos(angle))
dy = int(scale * np.sin(angle))
cv2.line(result, (x, y), (x + dx, y + dy), (255, 0, 0), 2)
# 显示匹配结果图像
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`template.png`是模板图像,`scene.png`是场景图像。匹配结果使用蓝色直线标记。注意,`cv2.linemod.getDefaultLINE()`需要OpenCV 4.4或以上版本才支持。如果你使用的是旧版本的OpenCV,可以使用其他的LineMOD算法,例如`cv2.linemod.Linemod()`。
阅读全文