AttributeError: module 'cv2' has no attribute 'Rect'
时间: 2023-08-27 20:04:36 浏览: 261
抱歉,我之前的回答中有误。在OpenCV中,确实没有名为`Rect`的属性。我向您道歉给您带来的困惑。
要计算轮廓的包围框,可以使用`cv2.boundingRect`函数,而不是使用`Rect`对象。下面是一个经过纠正的示例代码:
```python
import cv2
# 读取图像
image = cv2.imread('image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 计算轮廓包围框
for contour in contours:
x, y, w, h = cv2.boundingRect(contour)
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示结果
cv2.imshow('Original Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们使用了正确的`cv2.boundingRect`函数来计算轮廓的包围框。请注意,`cv2.findContours`函数返回的轮廓列表中的每个轮廓都可以使用`cv2.boundingRect`函数来计算其包围框。
请确保你已经正确导入了`cv2`库。如果问题仍然存在,请确保你的OpenCV库版本是正确的,并尝试更新到最新版本。
阅读全文