python调用cv2时成功解决问题:ValueError: not enough values to unpack (expected 3, got 2)

问题描述

python中在import cv2包调用findContours函数,调用情况如下:

# 寻找轮廓
bimg, contours, hier = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

出现如下问题:

Traceback (most recent call last):
  File "C:\Users\Y\Desktop\transformation_demo.py", line 9, in <module>
    bimg, contours, hier = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
ValueError: not enough values to unpack (expected 3, got 2)

问题分析

由于opencv版本的问题,旧版的opencv调用findContours函数时返回的是三个值,新版的opencv调用findContours函数时返回的是两个值。findContours函数的传值由三个值变成两个值。

所以如果你的opencv版本过高而又传的是三个值,那么就会报错。

问题解决

bimg, contours, hier = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)改为contours, hier = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE),问题就成功解决了。

猜你喜欢

转载自blog.csdn.net/ywsydwsbn/article/details/108441948