import cv2 image = cv2.imread('D:\c26a5f8fae2193fdae4a20bdd43a4222.png', cv2.IMREAD_COLOR) 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) ValueError: too many values to unpack (expected 2)
时间: 2023-08-13 12:15:00 浏览: 109
这个错误通常是因为 OpenCV 版本过低导致的。在 OpenCV 4 中,`cv2.findContours()` 函数返回两个值:轮廓和层次结构。但在较早的版本中,它只返回轮廓。
如果您的 OpenCV 版本较旧,则可以尝试将函数返回的值绑定到一个变量中,而不是尝试将其解包到两个变量中:
```
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
```
或者,您可以尝试将 OpenCV 升级到最新版本。
另外,请确保您的图像路径是正确的。如果您在 Windows 上运行此代码,请使用双反斜杠或单斜杠来指定路径,例如:`D:\\c26a5f8fae2193fdae4a20bdd43a4222.png` 或 `D:/c26a5f8fae2193fdae4a20bdd43a4222.png`。
阅读全文