获取ValueError:使用Python 3.6.3和Open CV解压缩的值太多(预期为3)

时间:2018-12-11 00:03:07

标签: python opencv hough-transform

嗨,我是python和OpenCV的新手。使用下面的代码,我试图从网络摄像头流式传输并检测圈子。我试图在for循环中提取圆的中心和半径,然后绘制圆。每次这样做,都会出现以下错误。

  

ValueError:太多值无法解包(预期3)

任何有关为什么代码不起作用的帮助将不胜感激。谢谢

import cv2
import numpy as np
import sys
cap = cv2.VideoCapture(1)
while(True):
    gray = cv2.medianBlur(cv2.cvtColor(cap.read()[1], cv2.COLOR_BGR2GRAY),5)
    circ = cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT,1,20,param1=50,param2=30,
                              minRadius=0,maxRadius=0)
    for(x,y,r) in circ:
        cv2.circle(gray,int(x),int(y),int(r),(0,255,0),2)
    cv2.imshow('video',gray)
    if cv2.waitKey(1)==27:# esc Key
        break
cap.release()
cv2.destroyAllWindows()
  

编辑:回溯

     

回溯(最近通话最近):     在第11行的文件“ C:/Documents/pythonproj/webcameratest.py”       约(x,y,r):   TypeError:“ NoneType”对象不可迭代

1 个答案:

答案 0 :(得分:0)

尝试一下:

circ = np.uint16(np.around(circ))
for i in circ[0,:]:
    cv2.circle(gray, (i[0], i[1]), i[2], (0, 255, 0), 2)

代替:

for(x,y,r) in circ:
    cv2.circle(gray,int(x),int(y),int(r),(0,255,0),2)