--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-11-1dfef52f726d> in <module>() ----> 1 contours, _ = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 2 3 for item in contours: 4 rect = cv2.boundingRect(item) 5 x = rect[0] ValueError: too many values to unpack (expected 2)
时间: 2023-08-08 13:08:29 浏览: 90
这个错误通常出现在使用 OpenCV 的 `findContours` 函数时,因为该函数的返回值在不同的 OpenCV 版本中可能有所不同。
在新的 OpenCV 版本中,`findContours` 函数会返回两个值:轮廓列表和层次结构。而在旧的版本中,它只返回轮廓列表。
你可以尝试修改代码,将函数返回值存储到一个变量中,并使用索引来访问轮廓列表:
```python
_, contours, _ = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for item in contours:
rect = cv2.boundingRect(item)
x = rect[0]
# do something with x
```
这里我们使用 `_` 来忽略第一个返回值(层次结构),并将轮廓列表存储在 `contours` 变量中。
阅读全文