关于 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判断Abundant Number的方法
Jun 15 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
Sep 25 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
python 读取、写入txt文件的示例
Sep 27 Python
python如何获得list或numpy数组中最大元素对应的索引
Nov 16 Python
pycharm debug 断点调试心得分享
Apr 16 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 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 动态添加记录
2009/03/10 PHP
PHP数组实例总结与说明
2011/08/23 PHP
PHP 中关于ord($str)>0x80的详细说明
2012/09/23 PHP
php获取服务器信息的实现代码
2013/02/04 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
php数组指针操作详解
2017/02/14 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
javascript实现画板功能
2020/04/12 Javascript
Python list操作用法总结
2015/11/10 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
python替换字符串中的子串图文步骤
2019/06/19 Python
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
花店创业计划书范文
2014/02/07 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
初中教师个人工作总结
2015/02/10 职场文书
自荐信模板大全
2015/03/27 职场文书
安全员岗位职责范本
2015/04/11 职场文书
三十年同学聚会感言
2015/07/30 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL