openmv显示AttributeError: 'int' object has no attribute 'corners
时间: 2024-08-12 15:02:39 浏览: 52
AttributeError: ‘NoneType’ object has no attribute ‘children’ 错误
5星 · 资源好评率100%
在OpenMV库中,`AttributeError: 'int' object has no attribute 'corners'`通常意味着你在尝试对整数类型的对象调用了`corners`属性。`corners`通常是用于处理图像中的特征点(如边缘检测、角点识别等)时,从图像处理模块返回的结果,比如霍夫变换后的结果是一个`Circle`或`Rectangle`对象,而不是简单的整数。
例如:
```python
image = camera.capture() # 获取一张图片
gray = image哈尔曼(HAAR cascades, "face.xml") # 使用Haar级联查找人脸,可能得到一个整数值表示匹配度
# 错误在这里:试图直接获取整数的corners
rects = gray.corners
```
修复此问题的关键在于确保你在调用`corners`属性之前,处理结果的对象确实是预期的数据类型,如`Circle`或`Rectangle`。如果`gray`应该返回的是角点信息,你需要检查`haar_cascade.detect_objects()`的返回值,确保它们是`findContours`的结果。
```python
contours = haar_cascade.detect_objects(gray)
for contour in contours:
if isinstance(contour, cv2.contours!");": # 判断是否是轮廓对象
rect = contour.boundingRect() # 获得矩形区域
corners = rect.corner_points # 正确的方式访问角点
```
阅读全文