【发布时间】:2016-12-03 13:19:42
【问题描述】:
我正在使用我的 RaspberryPi 使用 Hough Circle Transform,当我使用 ROI 来检查这样的圆圈时:
for (x,y,w,h) in trafficLights:
cv2.rectangle(image,(x,y),(x+w,y+h),(0,0,255),2)
roi = image[y:y+h,x:x+w]
roi = cv2.medianBlur(roi,5)
circles = cv2.HoughCircles(roi,cv2.HOUGH_GRADIENT,1,20,
param1=50,param2=60,minRadius=0,maxRadius=0)
circles = numpy.uint16(numpy.around(circles))
for i in circles[0,:]:
if i[2] < 100:
cv2.circle(image,(i[0],i[1]),i[2],(0,255,0),2)
cv2.circle(image,(i[0],i[1]),2,(0,0,255),3)
if i[1] > 315:
print "Green Light"
else:
print "Red Light"
我收到此错误
The source image must be 8-bit, single-channel in function cvHoughCircles
提前感谢您!
编辑:
【问题讨论】:
-
您可以将
image转换为灰度。使用cv2.cvtColor(..., COLOR_BGR2GRAY) -
@Miki 当我使用灰度图像时,它给了我另一个错误,我用图片更新了我的问题。
-
@Miki 仍然给出同样的错误。
-
您收到 NoneType 错误。我敢打赌,问题是圆圈是无的。这可能是因为您没有找到任何圈子。
标签: python opencv numpy channel hough-transform