这串代码遇到了AttributeError: 'numpy.ndarray' object has no attribute 'queryIdx'如何修改
时间: 2023-06-21 09:04:16 浏览: 155
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
5星 · 资源好评率100%
这个错误通常是由于将numpy数组作为对象传递给了需要OpenCV对象的函数而导致的。在OpenCV中,`queryIdx`是一个对象的属性,因此numpy数组没有这个属性并且会抛出AttributeError。
要解决这个问题,你需要将numpy数组转换为OpenCV对象。可以使用`cv2.KeyPoint()`和`cv2.DMatch()`函数来创建对象。例如,将`queryIdx`和`trainIdx`属性分别转换为OpenCV的`cv2.KeyPoint()`和`cv2.DMatch()`对象:
```python
import cv2
# 假设你有以下numpy数组
matches = np.array([[1, 2], [3, 4], [5, 6]])
# 转换为OpenCV对象
matches_cv2 = [cv2.DMatch(m[0], m[1], 0) for m in matches]
```
这样,你就可以在使用OpenCV函数时使用新的`matches_cv2`对象,而不会再遇到`AttributeError`异常了。
阅读全文