问题描述
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)
,问题就成功解决了。