opencvValueError: too many values to unpack (expected 2)
时间: 2023-11-21 19:58:13 浏览: 130
这个错误提示表明在执行cv2.findContours()函数时,返回的值数量与期望的不符。这通常是由于使用了错误的OpenCV版本或参数设置不正确导致的。建议检查OpenCV版本是否正确,并确保传递给cv2.findContours()函数的参数数量正确。如果您使用的是OpenCV 4.x版本,则需要将返回值的数量更改为3,即contours,hierarchy和ret,而不是2。如果您使用的是OpenCV 3.x版本,则返回值的数量应为2,即contours和hierarchy。您可以根据您使用的OpenCV版本进行相应的更改。
以下是一个OpenCV 4.x版本的示例代码,可以正确执行cv2.findContours()函数:
```python
import cv2
img = cv2.imread("image.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (3, 3), 0)
gray = cv2.Canny(gray, 100, 300)
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours, hierarchy, ret = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0, 0, 255), 3)
cv2.imshow("binary", binary)
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文