Seite 1 von 1

Anfang eines "Strichs" erkennen (Bildverarbeitung)

Verfasst: Dienstag 23. November 2010, 22:42
von antimatter
Hallo zusammen,

ich schreibe derzeit eine kleine Software zur Auswertung von langzeitbelichteten Nachthimmel-Aufnahmen. Sterne sind daher mehr oder minder als gekrümmte Spur abgebildet, deren Anfang bzw. Ende gesucht werden soll.
Dabei klickt der Anwender im Gesamtbild recht nahe eines Spurenendes ins Bild, um damit einen kleinen Auschnitt (rot) zur Analyse zu definieren. Ziel der Analyse ist die einigermaßen genaue Ermittlung der Position im Ausschnitt, an welcher die jeweils anvisierte Spur anfängt.

So sieht ein Teil des Bildes aus:
Bild

Nach meinen ersten Recherchen und Diskussion mit einem anderen Studenten bietet sich z.B. an, über einen Rank-Filter den Hintergrund zu säubern, einen Schwellwert anzusetzen und das ganze dann über das Labeling in scipy.ndimage rausfinden.

Allerdings bin ich ziemlicher Neuling, was Bildverarbeitung angeht.
Kennt sich da jemand genauer aus? Wäre die Vorgehensweise für das gezeigte Material ein guter Anfang oder wäre eine andere Strategie besser?


Viele Grüße
antimatter

Re: Anfang eines "Strichs" erkennen (Bildverarbeitung)

Verfasst: Mittwoch 24. November 2010, 12:51
von Sr4l
Hallo, könntest du das Bsp Bild nochmal hochladen?
Ich bekomme nur ein File not Found.

*edit*
Dein Link hat nur einen "/" zuviel.
http://img189.imageshack.us/img189/2600/testuy.jpg

Re: Anfang eines "Strichs" erkennen (Bildverarbeitung)

Verfasst: Mittwoch 24. November 2010, 19:41
von ms4py
Suchst du vielleicht nur nach dem Stichwort Kantenerkennung / Edge Detection? Da gibt es einige Algorithmen und viele Infos im Netz.

Re: Anfang eines "Strichs" erkennen (Bildverarbeitung)

Verfasst: Mittwoch 24. November 2010, 20:01
von HerrHagen
Deine Idee ist schon in Ordnung. Da sie hauptsächlich auf Standard-Algorithmen basiert kann man sowas schnell mal umsetzen. Wie robust das ganze ist muss natürlich auf einer ganzen Reihe Bilder geprüft werden. Mit einem Programm wie Fiji (=ImageJ + Plugins) kannst vorab schon mal grob prüfen ob dein Weg zielführend ist. Darin sind die gängigsten Algorithmen schon implementiert. Auch die von dir angesprochenen Rangordnungsfilter (Medianfilter, Erosion, Dilation).
Wenn du nicht weiterkommst, kannst du ja noch ein paar Bilder posten. Dann kann ich dir sicher noch ein wenig unter die Arme greifen.

MFG HerrHagen

Re: Anfang eines "Strichs" erkennen (Bildverarbeitung)

Verfasst: Mittwoch 24. November 2010, 20:13
von HerrHagen
@ms4py: Kantenerkennung bringt dich hier nur bedingt weiter. Damit werden Kanten im Bild hervorgehoben. Keine Linien (unterschiedlicher Dicken) segmentiert. Das Hauptproblem ist hier eher durch eine gescheite Vorverarbeitung zu finden, die den Vordergrund vom verrauschtem Hintergrund robust trennt.

Re: Anfang eines "Strichs" erkennen (Bildverarbeitung)

Verfasst: Donnerstag 25. November 2010, 18:04
von Sr4l
Ich habe mal ein bisschen rum gespielt. Ich entschuldige mich schon mal vorab für den Code; ist wirklich mies zu lesen und verstehen.

Mein Ergebnis ist der Code:
http://www.python-forum.de/pastebin.php?mode=view&s=92

Das bereinigte Bild sieht so aus:
1_clean.bmp

Das Bild mit eingefärbten Linien dann so:
2_color.bmp

Und hier noch ne Überbledung der zwei Bilder:
3_blend.bmp