OPEN_CV 错误没有足够的值来解包(预期 3,得到 2)[重复]

Posted

技术标签:

【中文标题】OPEN_CV 错误没有足够的值来解包(预期 3,得到 2)[重复]【英文标题】:OPEN_CV ERROR not enough values to unpack (expected 3, got 2) [duplicate] 【发布时间】:2019-06-24 00:12:27 【问题描述】:
for, 
 image, contours, hierarchy =  cv2.findContours(erosion,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)

显示这个错误:

ValueError: not enough values to unpack (expected 3, got 2)

Python 版本:3.7.2 OpenCV 版本:4.0.0

【问题讨论】:

【参考方案1】:

删除 for 循环后的逗号,我很惊讶你没有从中得到语法错误。我不确定你首先需要一个 for 循环。如果要迭代从 findContours 返回的每个值,请在将值分配给变量后执行此操作。看起来您没有将图像作为要解包的值之一传递。尝试如下重写该行: From the docs

contours, hierarchy = cv2.findContours(erosion,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)

假设侵蚀是图像的名称。您收到该错误的原因是因为您将 3 个变量分配给一个函数并且只输出 2 个(轮廓和层次结构)。所以 python 期望 findContours 有 3 个输出,但只返回两个,从而导致您遇到错误。

【讨论】:

非常感谢这对我的帮助,我得到了预期的输出 :) 顺便说一句,你是日本人吗??? 不 :)。标记为答案是有帮助的,所以其他人也知道!

以上是关于OPEN_CV 错误没有足够的值来解包(预期 3,得到 2)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:没有足够的值来解包(预期 3,得到 2)。啥地方出了错? [复制]

python OpenCV中的ValueError - 没有足够的值来解包(预期3,得到2)

Python 2 - ValueError:没有足够的值来解包(预期 6,得到 1)

Django sorl:没有足够的值来解包(预期 2,得到 1)

Pandas read_excel 返回'没有足够的值来解包(预期 2,得到 1)'

ValueError:没有足够的值来解包(预期2,得1)