关于 Python opencv 使用中的 ValueError: too many values to unpack


Posted in Python onJune 28, 2019

最近在OpenCV-Python接口中使用cv2.findContours()函数来查找检测物体的轮廓。

根据网上的 教程,Python OpenCV的轮廓提取函数会返回两个值,第一个为轮廓的点集,第二个是各层轮廓的索引。但是实际调用时我的程序报错了,错误内容如下:too many values to unpack (expected 2)

其实是接受返回值不符,如果你仅仅使用一个变量a去接受返回值,调用len(a),你会发现长度为3,也就是说这个函数实际上返回了三个值

第一个,也是最坑爹的一个,它返回了你所处理的图像

第二个,正是我们要找的,轮廓的点集

第三个,各层轮廓的索引

使用方式如下:

import cv2 
 
img = cv2.imread('D:\\test\\contour.jpg') 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
ret, binary = cv2.threshold(gray,127,255,cv2.THRESH_BINARY) 
 
contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) 
cv2.drawContours(img,contours,-1,(0,0,255),3) 
 
cv2.imshow("img", img) 
cv2.waitKey(0)

运行时出现错误: ValueError: too many values to unpack

原因:由于版本(使用的时3.2.0.7)问题 cv.findContours返回值个数发生变化,变为3个。因此应该为

aa, ctrs, hier = cv2.findContours(im_th.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

假如第一个参数不使用,可写成

_, ctrs, hier = cv2.findContours(im_th.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

拓展:

ValueError: too many values to unpack 类错误,多为输入或者输出参数数量不一致导致。

参考:

其实是接受返回值不符,如果你仅仅使用一个变量a去接受返回值,调用len(a),你会发现长度为3,也就是说这个函数实际上返回了三个值

第一个,也是最坑爹的一个,它返回了你所处理的图像

第二个,正是我们要找的,轮廓的点集

第三个,各层轮廓的索引

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中使用异步Socket编程性能测试
Jun 25 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
对python内置map和six.moves.map的区别详解
Dec 19 Python
python3 selenium自动化 frame表单嵌套的切换方法
Aug 23 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
基于python爬取链家二手房信息代码示例
Oct 21 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
5行Python代码实现一键批量扣图
Jun 29 Python
Python Django / Flask如何使用Elasticsearch
Apr 19 Python
Python PIL按比例裁剪图片
May 11 Python
python识别图像并提取文字的实现方法
Jun 28 #Python
python3射线法判断点是否在多边形内
Jun 28 #Python
python opencv 批量改变图片的尺寸大小的方法
Jun 28 #Python
python如何实现代码检查
Jun 28 #Python
python射线法判断一个点在图形区域内外
Jun 28 #Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 #Python
如何使用Python 打印各种三角形
Jun 28 #Python
You might like
PHP array操作10个小技巧分享
2011/06/23 PHP
php 网上商城促销设计实例代码
2012/02/17 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
项目实践之javascript技巧
2007/12/06 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
python获取糗百图片代码实例
2013/12/18 Python
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
开办大学饮食联盟创业计划书
2014/01/29 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
公司员工安全协议书
2014/11/21 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
辩论赛新闻稿
2015/07/17 职场文书
运动会800米赞词
2015/07/22 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server