Python ValueError:没有足够的值可解包(预期3,得到2)

时间:2020-06-08 01:18:24

标签: python pycharm iterable-unpacking opencover

我正在使用python

代码

function toggleDarkModeRadio() {
  if ($('#dark-mode-on').prop('checked', true)) {
    $('#dark-mode-off').prop('checked', true);
  };
  if ($('#dark-mode-off').prop('checked', true)) {
    $('#dark-mode-on').prop('checked', true);
  };
}

错误(第二行)

_, threshold = cv2.threshold(gray_roi, 3, 255, cv2.THRESH_BINARY_INV)
_, contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contours = sorted(contours, key=lambda x: cv2.contourArea(x), reverse=True)

如何解决?

2 个答案:

答案 0 :(得分:1)

根据cv2.findContours documentation,该函数仅返回2个值。您尝试打开3的包装。

从第二行中删除第一个_(不需要的值)以匹配文档中的签名。

_, threshold = cv2.threshold(gray_roi, 3, 255, cv2.THRESH_BINARY_INV)
contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contours = sorted(contours, key=lambda x: cv2.contourArea(x), reverse=True)

通常来说,当您收到以下Python错误消息时:

ValueError:没有足够的值可解包(预期 x 得到 y

搜索尝试解压缩y元素的位置,然后尝试通过解压缩x元素来解决此问题。

答案 1 :(得分:1)

请参考OpenCV参考:

https://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=findcontours#cv2.findContours

findCounters返回(轮廓,层次结构),因此第二行应为:

contours, hierarchy = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)