ValueError: too many values to unpack
来源:网络收集 点击: 时间:2024-02-07python在进行轮廓处理时出现
ValueError:toomanyvaluestounpack(expected2),
根据提示怀疑在进行轮廓处理时可能有问题

在进一步观察上一步提示发现
File D:/mywork/pythonn/xxx/opencv.py, line 25, in module
contours,hierarchy = cv.findContours(BINARYImg, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
这句和代码里cv.findContours(BINARYImg, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE) 是一致的。
基本定位问题点。

检查findContours原型:
cvFindContours是从二值图像中检索轮廓,并返回检测到的轮廓的个数
这实际就是问题所在。误以为是两个返回函数!
继续百度
官网显示函数原型:
image, contours, hierarchy=cv.findContours(image, mode, method]])
返回值是3个!

image, contours, hierarchy=cv.findContours(image, mode, method]])
三个返回值的简单解释:
image: 返回处理的图像
contours:轮廓的点集
hierarchy:各层轮廓索引

修改代码
ret,BINARYImg = cv.threshold(grayImg, 100, 255, cv.THRESH_BINARY)cv.imshow(BINARYImg, BINARYImg)
binary,contours,hierarchy = cv.findContours(BINARYImg, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
cv.imshow(binary, binary)cv.waitKey(0)
比较两幅图


结论:
要注意findContours 返回的是三个参数!
返回值第一个是原来的二值图。
修改代码后,错误消失。能够正确计算轮廓点集!
注意事项要注意findContours 返回的是三个参数
返回值第一个是原来的二值图
FINDCONTOURS轮廓提取OPENCVPYTHONVALUEERROR版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_12225.html