使用python opencv ,创建一个圆形模板,使用linemod模板匹配,对img匹配,并显示匹配结果图像
时间: 2023-12-10 22:06:28 浏览: 97
以下是示例代码:
```python
import cv2
import numpy as np
# 创建圆形模板
template = np.zeros((100, 100), dtype=np.uint8)
cv2.circle(template, (50, 50), 30, 255, -1)
# 加载待匹配图像
img = cv2.imread('test.png', cv2.IMREAD_GRAYSCALE)
# 初始化 Linemod 检测器
detector = cv2.linemod.getDefaultLINE()
detector.read('./detector.yml')
# 提取模板特征
modality = cv2.linemod.Modality_COLOR
num_features = 32
threshold = 50
extractor = cv2.linemod.ColorGradientExtractor(num_features)
color_space = cv2.COLOR_BGR2GRAY
features = []
features.append(extractor(template))
# 添加模板
class_id = 0
detector.addTemplate(features, class_id)
# 匹配模板
matches, scores = detector.match(img, threshold, class_id)
# 显示匹配结果
num_matches = len(matches)
for i in range(num_matches):
x, y, score, template_id = matches[i]
cv2.rectangle(img, (x, y), (x+100, y+100), (0, 0, 255), 2)
cv2.imshow('Matches', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们创建了一个 100x100 的圆形模板,并将其添加到 Linemod 检测器中。然后,我们加载了一个待匹配的图像,并使用 Linemod 检测器进行匹配。最后,我们在匹配位置处在原图上画了一个红色的矩形框来表示匹配结果。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)