AttributeError: 'FlannBasedMatcher' object has no attribute 'knnMatch'
时间: 2023-06-21 13:13:01 浏览: 92
新人学习python的django框架常见问题总结
这个错误通常是由于OpenCV版本不同造成的。在新版本的OpenCV中,`knnMatch()`函数已经被改为`cv2.DescriptorMatcher_create()`函数的`knnMatch()`方法。您可以尝试以下代码:
```python
import cv2
# 初始化FLANN匹配器
FLANN_INDEX_KDTREE = 0
index_params = dict(algorithm=FLANN_INDEX_KDTREE, trees=5)
search_params = dict(checks=50)
flann = cv2.FlannBasedMatcher(index_params, search_params)
# 使用knnMatch匹配器
matches = flann.knnMatch(des1, des2, k=2)
```
如果您使用的是较早的OpenCV版本,您可以使用以下代码:
```python
import cv2
# 初始化BFMatcher
bf = cv2.BFMatcher()
# 使用knnMatch匹配器
matches = bf.knnMatch(des1, des2, k=2)
```
这应该可以解决您的问题。
阅读全文