关于 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网络编程示例(客户端与服务端)
Apr 24 Python
python制作一个桌面便签软件
Aug 09 Python
在Python的Flask中使用WTForms表单框架的基础教程
Jun 07 Python
Apache如何部署django项目
May 21 Python
Python win32com 操作Exce的l简单方法(必看)
May 25 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
python如何删除列为空的行
Jul 17 Python
python绘图模块之利用turtle画图
Feb 12 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 21 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 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
php支付宝APP支付功能
2020/07/29 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
Python 数据结构之堆栈实例代码
2017/01/22 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
岳父生日宴会答谢词
2014/01/13 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
个人委托书
2014/07/31 职场文书
班级团队活动方案
2014/08/14 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL