OpenCV Hough Circle Transform требует 8-битного изображения

Я работаю с Hough Circle Transform с моей RaspberryPi, и когда я беру 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 

введите описание изображения здесь Как я могу преобразовать ROI, чтобы стать 8-битным изображением, или ошибка означает что-то еще

Заранее спасибо!

Редактировать:

введите описание изображения здесь

One Solution collect form web for “OpenCV Hough Circle Transform требует 8-битного изображения”

Спасибо Мики и бпачеву за помощь!

Первая ошибка означает, что вам нужно преобразовать ее в оттенки серого как это

 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 

И ошибка NoneType означает, что не было найдено ни одного круга, чтобы исключить ошибку, вы можете добавить этот оператор if

 if circles is not None: circles = numpy.round(circles[0, :]).astype("int") 

Тогда, поскольку никаких кругов не было найдено, где я знал, что есть круги, мне пришлось поиграть с настройками детектора.

  • Matplotlib: Какова функция cmap в imshow?
  • OpenCV - Существует ли реализация маркерной реконструкции в opencv
  • подсчитать цветные точки на изображении
  • Преобразование RGB в черный или белый
  • Отслеживание двух разных цветов с использованием OpenCV 2.3 и Python
  • Ошибка открытого CV не удалось запустить raw1394, сохраняющийся в докере
  • Обучение и обнаружение HOG в Python с использованием OpenCV
  • Почему расширение cv2 не влияет на мой образ?
  • Python - лучший язык программирования в мире.