为什么报这个错AttributeError: 'numpy.ndarray' object has no attribute 'pt'
时间: 2024-07-31 13:01:08 浏览: 131
python的mysql数据查询及报错AttributeError: ‘Connection’ object has no attribute ‘curson’
这个错误是因为你在代码中试图访问一个`numpy.ndarray`对象的`pt`属性,但是`numpy.ndarray`实际上并没有这样一个属性。在OpenCV中,`orb.detectAndCompute()`函数返回的是两个值:关键点(keypoints)列表和描述符(descriptors)数组。当你尝试获取关键点的“pt”属性时,应该直接使用关键点对象。
关键点对象通常有一个名为`pt`的属性,它是表示关键点位置的元组,如`(x, y)`。但如果你看到类似`np.float32([src_key_points[m.queryIdx]])`这样的表达式,它可能是试图将整个关键点对象转换成浮点数数组,而不是只取其`pt`属性。你需要分开处理,例如:
```python
src_key_points_list = src_key_points[m.queryIdx]
src_point = src_key_points_list.pt
```
或者
```python
src_point = src_key_points[m.queryIdx].pt
```
检查一下这部分的代码,确保你是在正确的地方和正确的对象上调用了`pt`属性。如果关键点已经被转换成其他形式的数据结构,记得按照该数据结构的文档说明来提取位置信息。
阅读全文