关于Python opencv使用中的ValueError:太多的值来解压

  

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

  

根据网上的教程,Python  OpenCV的轮廓提取函数会返回两个值,第一个为轮廓的点集,第二个是各层轮廓的索引。但是实际调用时我的程序报错了,错误内容如下:太多的值来解压缩(预计2)

  

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

  

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

  

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

  

第三个,各层轮廓的索引

  

使用方式如下:

        进口cv2      img=cv2.imread (“D: \ \测试\ \ contour.jpg”)   灰色=cv2.cvtColor (img cv2.COLOR_BGR2GRAY)   受潮湿腐烂、二进制=cv2.threshold(灰色,127255,cv2.THRESH_BINARY)      轮廓,等级=cv2.findContours(二进制、cv2.RETR_TREE cv2.CHAIN_APPROX_SIMPLE)   cv2.drawContours (img,轮廓,1 (0,0255),3)      cv2。img imshow (img)   cv2.waitKey (0)      之前      

运行时出现错误:,<代码> ValueError:太多的值将

  

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

        aa,点击率数据,海尔=cv2.findContours (im_th.copy (), cv2。RETR_EXTERNAL cv2.CHAIN_APPROX_SIMPLE)   之前      

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

        _,点击率数据,海尔=cv2.findContours (im_th.copy (), cv2。RETR_EXTERNAL cv2.CHAIN_APPROX_SIMPLE)      

拓展:
  

  

ValueError:太多的值将类错误,多为输入或者输出参数数量不一致导致。

  

参考:   https://www.jb51.net/article/132200.htm

  

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

  

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

  

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

  

第三个,各层轮廓的索引
  

  

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

关于Python opencv使用中的ValueError:太多的值来解压