2017-01-16 5 views
1
img = cv2.imread('/home/user/Documents/pycharm-workspace/ImageProcessing/SDC10004.JPG', 1) 
img = cv2.medianBlur(img, 5) 
cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) 

circles = cv2.HoughCircles(img, cv2.cv.CV_HOUGH_GRADIENT, 1, 20,param1=50,param2=30,minRadius=0,maxRadius=0) 
circles = np.uint16(np.around(circles)) 
for i in circles[0, :]: 
    # draw the outer circle 
    cv2.circle(cimg, (i[0], i[1]), i[2], (0, 255, 0), 2) 
    # draw the center of the circle 
    cv2.circle(cimg, (i[0], i[1]), 2, (0, 0, 255), 3) 

cv2.imwrite('circles_detected.JPG', cimg) 

Ich versuche, Kreise in meinem Bild mit der HoughCircles-Funktion von opencv zu erkennen. Python - OpenCV - Kreis Erkennung mit HoughCircles

ist Dies ist die Fehlermeldung erhalte ich:

cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) 
cv2.error: /build/buildd/opencv-2.4.8+dfsg1/modules/imgproc/src/color.cpp:3789: error: (-215) scn == 1 && (dcn == 3 || dcn == 4) in function cvtColor 

Ich versuchte auch, wie dies das Graustufenbild zu laden und die cvtColor Funktion aus

img = cv2.imread('/home/user/Documents/pycharm-workspace/ImageProcessing/SDC10004.JPG', 0) 

lassen jedoch das Programm nur für immer dauert laufen . Ich habe mehr als 10 Minuten gewartet und nichts ist passiert.

Kann mir bitte jemand helfen?

Antwort

3

Für Ihren ersten Fehler, die Sie Ihr Bild im Farbmodus mit

img = cv2.imread('/home/user/Documents/pycharm-workspace/ImageProcessing/SDC10004.JPG', 1) #1 means color 

öffnen und dann versuchen, es zu konvertieren sie als Graustufenbild mit

cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) #GRAY2BGR means gray to BGR. 
#You don't have a grayscale image to begin with. 

Für Ihr zweites Problem zu behandeln, Die Hough-Transformation ist ein langer Prozess. Ich habe Ihren Code mit einem 200 * 200 Bild ausprobiert und es war sofort. Probieren Sie zuerst kleinere Bilder aus, um zu sehen, ob es funktioniert.

+0

@ cmplx96 immer vorsichtig sein, das Bild, das Sie lesen und wie Sie es lesen. –

+1

Die WCS ist, wenn Sie auf einem falschen Pfad imread verwenden, und es ergibt keinen Fehler, gibt nur eine None zurück, die auf ihre fröhliche Weise geht, den Rest Ihres Codes zu zerstören;). >>> immer auf Keine prüfen, wenn du es gelesen hast! – Soltius

+0

ich skalierte die Bildauflösung herunter und jetzt funktioniert es. Danke euch allen. – cmplx96

Verwandte Themen