cv2.findcontours报错 valueerror:too many values to unpack(expected 2)
时间: 2023-05-08 14:55:37 浏览: 719
cv2.findcontours是一个OpenCV库中的函数,用于在二值图像中检测轮廓。它会返回两个值,第一个是每个轮廓的点的列表,第二个是每个轮廓的层次结构。如果在使用时出现"ValueError: too many values to unpack(expected 2)"的报错,通常是因为赋值的变量数量和函数返回值不一致。
解决这个问题可以尝试以下步骤:
1.检查代码中的变量赋值,确保预期的返回值可以赋值给每个变量。
2.检查是否有其他函数调用了cv2.findcontours函数,并且返回值数量不符。
3.将找到的轮廓点的变量单独赋值给一个变量,如下所示:
contours, _ = cv2.findcontours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
这样就可以避免使用不需要的变量引起的报错。
总之,"ValueError: too many values to unpack(expected 2)"通常表示OpenCV库函数返回的值与预期不同,需要仔细检查函数调用和变量赋值。
相关问题
Traceback (most recent call last): File "D:\DAIMA\球团.py", line 14, in <module> contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # OpenCV4~ ValueError: too many values to unpack (expected 2)
这是一段Python代码出现错误,错误信息为“Traceback (most recent call last): File "D:\DAIMA\球团.py", line 14, in <module> contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)”。这个错误通常表示在第14行代码中调用了cv2.findContours函数时出现了问题。可能是函数参数传递错误或输入图像的二进制格式有误。
contours, hierarchy = cv2.findContours(binary, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) ValueError: too many values to unpack (expected 2)
这个错误通常是因为 OpenCV 版本不同导致的。在旧版本的 OpenCV 中,`findContours` 函数只返回一个值,而在新版本的 OpenCV 中,它返回两个值。
您可以尝试将代码中的语句修改为以下内容,以适应不同版本的 OpenCV:
```
contours, hierarchy = cv2.findContours(binary, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)[-2:]
```
这样可以确保代码在不同版本的 OpenCV 中都能够正常运行。
阅读全文