Erkennen Sie Halbkreise in opencv

Ich versuche, Vollkreise und Halbkreise in einem Bild zu erkennen.

Ich folge der unten beschriebenen Prozedur: Prozessabbild (einschließlich Erkennung von Canny-Kanten) Finden Sie Konturen und zeichnen Sie sie auf ein leeres Bild, damit ich unerwünschte Komponenten entfernen kann. (Das verarbeitete Bild ist genau das, was ich will.) Erkennen Sie Kreise mit HoughCircles. Und das bekomme ich.

Ich habe versucht, die Parameter in HoughCircles zu variieren, aber die Ergebnisse sind nicht konsistent, da sie abhängig von der Beleuchtung und der Position der Kreise im Bild variieren. Ich akzeptiere oder lehne einen Kreis basierend auf seiner Größe ab. Das Ergebnis ist also nicht akzeptabel. Außerdem habe ich eine lange Liste von "akzeptablen" Kreisen, so dass ich in den HoughCircle-Parametern eine gewisse Unterstützung benötige. Was die vollen Kreise betrifft, ist es einfach - ich kann einfach die "Rundheit" der Kontur finden. Das Problem sind Halbkreise!

Finden Sie das bearbeitete Bild, bevor Sie es transformieren

Antworten auf die Frage(5)

Ihre Antwort auf die Frage