wie man mit opencv den Mittelpunkt eines verschwommenen Kreises erkennt

10

Ich habe folgendes Bild:

Geben Sie hier die Bildbeschreibung ein

Das Bild weist Krümmungen auf. Ich möchte die Mitte der Kreise mit Kurven finden.

Ich habe OpenCV und Hough Circle Transform versucht, aber keine Ergebnisse erzielt.

JingKe
quelle
Sind alle Kurven konzentrisch? ist der Abstand zwischen ihnen variabel?
Endolith
Ja, sie sind konzentrisch. und kein Abstand ist konstant.
JingKe

Antworten:

3

Sie müssen zuerst den Kontrast des Bildes verbessern und dann stark filtern, um das Rauschen zu entfernen. Da die Kreise 'dick' (verschwommen) sind, können Sie ziemlich viel filtern, ohne die Kreisstruktur zu zerstören.

Ich würde dann einen Kantenerkennungsalgorithmus anwenden, um ein binäres Kantenbild zu erhalten, das von der Circular Hough-Transformation verarbeitet werden kann.

Ich erhalte das folgende Randbild von Ihrem Bild: Geben Sie hier die Bildbeschreibung ein

Verwenden der folgenden MATLAB-Befehle:

 % x is the input grayscale image. First we adaptively improve the contrast over the image
 y= adapthisteq(x);

 % next we use the Canny edge detector with a strong Gaussian lowpass filter
 ee=edge(y, 'canny', [], 5);
Nimrodm
quelle