2016-04-26 19 views
2

Ich versuche Kreise aus dem folgende Bild Kreise mit Hough Funktion von OpenCVerfassen Kreise aus dem Bild mit Hough Kreis verwandeln

enter image description here

Mein Code (OpenCV mit Python)

myImage = cv2.imread("C:\\sample.jpg") 
img = cv2.resize(myImage,(640,480))   
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 

circles = cv2.HoughCircles(gray,cv2.cv.CV_HOUGH_GRADIENT,1,10, param1=50,param2=35,minRadius=0,maxRadius=0) 
circles = np.uint16(np.around(circles)) 
for i in circles[0,:]: 
    # draw the outer circle 
    cv2.circle(myImage,(i[0],i[1]),i[2],(0,255,0),2) 
    # draw the center of the circle 
    cv2.circle(myImage,(i[0],i[1]),2,(0,0,255),3) 
cv2.imshow('detected circles',myImage) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 
zu erkennen

Aber aus irgendeinem Grund kann ich nicht die richtigen Ausgänge bekommen. Ich erhalte die folgende Ausgabe

enter image description here

UPDATE

Dank es funktioniert jetzt. Mit der Einstellung param2 kann ich 2 Kreise erkennen. Ich habe sie falsch angezeigt und jetzt ist alles in Ordnung

+0

sind diese Kreise? sieht aus wie Ellipsen zu mir – Micka

Antwort

1

Sie scheinen die Koordinaten falsch angegeben zu haben.

# draw the outer circle 
    cv2.circle(myImage,(i[1],i[0]),i[2],(0,255,0),2) 
    # draw the center of the circle 
    cv2.circle(myImage,(i[1],i[0]),2,(0,0,255),3) 

ändern, dass zu

# draw the outer circle 
    cv2.circle(myImage,(i[0],i[1]),i[2],(0,255,0),2) 
    # draw the center of the circle 
    cv2.circle(myImage,(i[0],i[1]),2,(0,0,255),3) 
+0

nur tat, dass aber immer noch Ausgabe ist nicht korrekt ..Siehe mein Update – user1388142

+0

hast du beide die Koordinaten ändern? –

+0

yeap plz siehe neues Bild – user1388142

1

Nun, eine Sache ist, dass max Radius auf 0 gesetzt ist ...

dh Ihr Bereich ist 0 < Radius < 0.

Wenn ich mich nicht täusche (?), Ist das ein bisschen restriktiv, ja?

+0

afaik 0 bedeutet keine Einschränkung, daher sollten ALLE Größen vom Algorithmus berücksichtigt werden . – Micka

Verwandte Themen