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



嗨,我是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()

编辑:回溯

追踪(最近一次通话(:文件"C:\Documents/pythonproj/webcameratest.py",第11行,位于对于循环中的(x,y,r(:TypeError:"NoneType"对象不是可迭代的

试试这个:

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)

最新更新