OpenCV-Punktzielerkennung findet nicht alle Ziele und gefundene Kreise sind versetzt

8

Ich versuche, das Zentrum von schwarzen / weißen Punktzielen zu erkennen, wie in diesem Bild. Ich habe versucht, die cv2.HoughCircles-Methode zu verwenden, aber 1, bin nur in der Lage, 2 bis 3 Ziele zu erkennen, und 2, wenn ich die gefundenen Kreise wieder auf das Bild plotten, sind sie immer leicht versetzt.

Benutze ich die falsche Methode? Soll ich die findContours oder etwas ganz anderes benutzen?

Hier ist mein Code:

%Vor%

Und das ist meine aktuelle Ausgabe:

    
hokiebird 01.05.2012, 20:43
quelle

2 Antworten

8

Mit dem Code, den ich in einem anderen Post geschrieben habe, konnte ich ein etwas besseres Ergebnis erzielen:

Es geht um die Parameter. Das ist es immer.

Es gibt 3 wichtige Funktionen, die in diesem Programm aufgerufen werden, mit denen Sie experimentieren sollten: cvSmooth() , cvCanny() und cvHoughCircles() . Jeder von ihnen hat das Potenzial, das Ergebnis drastisch zu ändern.

Und hier ist der C-Code:

%Vor%

Ich vertraue darauf, dass du die Fähigkeiten hast, dies nach Python zu portieren.

    
karlphillip 02.05.2012, 15:04
quelle
0

Da dieses Kreismuster fest und gut vom Objekt getrennt ist, sollte der einfache Template-Abgleich einigermaßen gut funktionieren, check out cvMatchTemplate . Bei komplexeren Bedingungen (Verziehen durch Objektform oder Ansichtsgeometrie) können Sie robustere Features wie SIFT oder SURF ( cvExtractSURF ) ausprobieren.

    
jeff7 02.05.2012 12:30
quelle