查看: 1932|回复: 1

OpenCV python: ValueError: too many values to unpack

[复制链接]

6

主题

21

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2018-10-13 09:35:12 | 显示全部楼层 |阅读模式
本帖最后由 莫晓沙 于 2018-10-13 10:15 编辑

我正在写一个opencv程序,我找到了另一个stackoverflow有问题的脚本,链接如下:
https://stackoverflow.com/questions/14752006/computer-vision-masking-a-human-hand/14756351#14756351
运行脚本的时候却发现报错了
  1. Traceback (most recent call last):
  2.     File "skinimagecontour.py", line 13, in <module>
  3.     contours, _ = cv2.findContours(skin_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
  4. ValueError: too many values to unpack
复制代码
直接上代码
  1. import sys
  2. import numpy
  3. import cv2

  4. im = cv2.imread('Photos/test.jpg')
  5. im_ycrcb = cv2.cvtColor(im, cv2.COLOR_BGR2YCR_CB)

  6. skin_ycrcb_mint = numpy.array((0, 133, 77))
  7. skin_ycrcb_maxt = numpy.array((255, 173, 127))
  8. skin_ycrcb = cv2.inRange(im_ycrcb, skin_ycrcb_mint, skin_ycrcb_maxt)
  9. cv2.imwrite('Photos/output2.jpg', skin_ycrcb) # Second image

  10. contours, _ = cv2.findContours(skin_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
  11. for i, c in enumerate(contours):
  12.     area = cv2.contourArea(c)
  13.     if area > 1000:
  14.         cv2.drawContours(im, contours, i, (255, 0, 0), 3)
  15. cv2.imwrite('Photos/output3.jpg', im)
复制代码
这是咋回事啊


回复

使用道具 举报

5

主题

53

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2018-10-13 09:43:02 | 显示全部楼层
本帖最后由 AI的世界 于 2018-10-13 10:15 编辑

在opencv堆栈交换站点有答案
Opencv的主分支的返回语句已经改了:
http://docs.opencv.org/modules/i ... light=findcontours.
因此对应的行应该改为:
  1. _, contours, _= cv2.findContours(skin_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表