解决报错ValueError: not enough values to unpack (expected 3, got 2)
错误提示:
Traceback (most recent call last):
File "E:/workspace/code/detect/ShapeDetect.py", line 86, in <module>
ld.analysis(src)
File "E:/workspace/code/detect/ShapeDetect.py", line 18, in analysis
out_binary, contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE) #
ValueError: not enough values to unpack (expected 3, got 2)
进程已结束,退出代码为 1
在使用opencv进行关键点识别、边缘轮廓提取的时候,提示以上错误,报错原因是函数定义的返回值数量和调用函数时实际赋予的返回值数量不一致。导致这个问题,实际是因为opencv版本不一致引起的,新版opencv(opencv4)在调用findContours时只需要两个参数,需要删掉第一个参数(本文中错误行代码的out_binary),只需要删除一个参数就可以完美解决;opencv3需要三个参数,修改运行环境,使用opencv3.6也可解决。
解决方法
方法1
删除第一个参数,即代码改为:
contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)文章来源:https://www.toymoban.com/news/detail-504232.html
方法2
修改opencv版本,降至opencv3文章来源地址https://www.toymoban.com/news/detail-504232.html
到了这里,关于解决报错ValueError: not enough values to unpack (expected 3, got 2)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!