关于 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 相关文章推荐
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
python求解水仙花数的方法
May 11 Python
python 动态加载的实现方法
Dec 22 Python
python smtplib发送带附件邮件小程序
May 22 Python
python:接口间数据传递与调用方法
Dec 17 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
Mar 18 Python
django 消息框架 message使用详解
Jul 22 Python
python接口自动化如何封装获取常量的类
Dec 24 Python
Python实现FLV视频拼接功能
Jan 21 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
总结几个非常实用的Python库
Jun 26 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
PHP5中MVC结构学习
2006/10/09 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
PHP xpath()函数讲解
2019/02/11 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
javascript 播放器 控制
2007/01/22 Javascript
JavaScript中“+=”的应用
2007/02/02 Javascript
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
vue二级路由设置方法
2018/02/09 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Python断言assert的用法代码解析
2018/02/03 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
Python最小二乘法矩阵
2019/01/02 Python
python读文件的步骤
2019/10/08 Python
python可视化text()函数使用详解
2020/02/11 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
车间主任岗位职责
2014/03/16 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
个人委托函范文
2015/01/29 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
大学生读书笔记大全
2015/07/01 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
导游词之无锡东林书院
2019/12/11 职场文书