LabVIEWForum.de
Winkelerkennung aus FFT - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW Vision (/Forum-LabVIEW-Vision)
+---- Thema: Winkelerkennung aus FFT (/Thread-Winkelerkennung-aus-FFT)



Winkelerkennung aus FFT - Crainte - 03.09.2012 16:56

Sers Leute,

ich bin nun schon seit einiger Zeit auf der Suche nach Hilfe im Internet, aber leider immer nur auf Fragmente der Lösung oder gute Ansätze in falscher Richtng gestoßen. In diesem Sinne dachte ich mir, ich frag hier mal nach. Vl kann mir ja von euch einer helfen. (Im Falle einer bereits bestehenden Lösung: ich hab die SuFu benutzt Wink )


Aufgaben/Problem-stellung:
Ich habe ein Programm geschrieben, dass von "noisy" Bildern die komplexe FFT erstellt, einen Tiefpassfilter anwendet und wieder die inverse FFT erstellt, sprich das original Rekonstruiert.
Mit diesem Programm, werden die störenden Frequenzen aus dem original Bild genommen und übrig bleibt ein rekonstruirtes, entstörtes Bild. Um nun den Filter anwenden zu können, muss die Filter Maske entsprechend der Ausrichtung der FFT angepasst werden. Derzeit wird dies manuell mittels konstantem Wert bei der "Imaq Rotate"-Funktion erreicht, soll aber automatisiert geschehen.

Meine gedachte Lösung:
Mein Hauptproblem ist das Erstellen und der Vergleich von offenen Mustern innerhalb der Bildverarbeitung. So haben alle FFT transformierten Bilder nach der komplexen Frequenzspiegelung ein gleichmäßig verteiltes Punktmuster. Ich würde hier gerne im Bildmittelpunkt 3 dieser Punkte verbinden um einen rechten Winkel zu erhalten. Die Ausrichtung dieses Winkels sollte nun mit einem Referenzwinkel (0°) verglichen bzw subtrahiert werden. Das Resultat wäre dann als Maskenwinkel zu übernehmen und würde für einen Großteil der zu analysierenden Bilder übereinstimmen.

Das angehängte Bild zeigt meinen Gedankengang: grün = Referenzwinkel, rot = realer Winkel
Maske (dicke Dots) soll an die Ausrichtung der FFT (Lichtpkte) angepasst werden.


Bin für alle Denk- und Lösungsvorschläge offen.


mfg und in der Hoffnung auf eure Antworten,
markus


PS: LabView 2010 SP1 (32-bit)


RE: Winkelerkennung aus FFT - Kiesch - 03.09.2012 17:16

An sich musst du nur einen Punkt rausgreifen und dann über den den nächsten Nachbarn suchen (kannst ja nen Kasten drumlegen und in dem die Abstände zu darin enthaltenen Punkten berechnen oder so. Wenn du dann die 4 nächsten Nachbarn hast, kannst du aus denen dann entsprechend den Winkel berechnen (brauchst ja eigentlich nur 2 weitere Punkte aber mit 4 Punkten sollte des etwas genauer werden) Berechnung entsprechend einfach über die Koordinaten der Punkte.

Gruß Kiesch


RE: Winkelerkennung aus FFT - Crainte - 06.09.2012 14:09

Hi again,

Danke erstmal für die schnelle Antwort.

(03.09.2012 17:16 )Kiesch schrieb:  An sich musst du nur einen Punkt rausgreifen und dann über den den nächsten Nachbarn suchen [...]

Genau das war mein Gedanke. Ich habe nun schon einige Zeit damit verbracht und versucht hohe Frequenzen (in der FFT als helle Puntke dargestellt) zu extrahieren. Leider ohne Erfolg. Langsam aber sicher gehn mir die Ideen dann aus. Bahn


RE: Winkelerkennung aus FFT - Crainte - 06.09.2012 15:03

(06.09.2012 14:09 )Crainte schrieb:  Hi again,
Danke erstmal für die schnelle Antwort.
(03.09.2012 17:16 )Kiesch schrieb:  An sich musst du nur einen Punkt rausgreifen und dann über den den nächsten Nachbarn suchen [...]
Genau das war mein Gedanke. Ich habe nun schon einige Zeit damit verbracht und versucht hohe Frequenzen (in der FFT als helle Puntke dargestellt) zu extrahieren. Leider ohne Erfolg. Langsam aber sicher gehn mir die Ideen dann aus. Bahn
Doppelpost aufgrund von 30min Edit-time-limit... -.-'


Ich hatte nun die Idee, den Mittelpunkt des Bildes als Referenz (0-Pkt) herzunehmen. Beim Winkel-Mess-VI (siehe Attachment) würde ich dann gerne die Koordinaten des ersten hellen Punktes auf der rechten, oberen Seite der Mitte hernehmen und diese mit meinen 0-Pkt gegenrechnen lassen.

Jedoch muss ich hier komplett passen, da ich wirklich keine Ahnung habe, wie ich die Koordinaten der hellen Punkte extrahiere. Gibts hierzu irgendwo im Netz eine bekannte, vl deutschsprachige, Einführung?

Vielen Dank und mfg


RE: Winkelerkennung aus FFT - Kiesch - 10.09.2012 13:49

hmm... ich kenn mich leider nicht gut genug mit Vision aus um dir da besonders viel weiterzuhelfen, würde aber vermuten dass es für sowas vorgefertigte Funktionen gibt die dir eine Art Maske übers Bild legen. Ist ja so wie ich das bei dir sehe (in den Screenshots) auch gemacht. Wie man da die Punkte draus extrahiert weis ich allerdings nicht, aber irgendwo müssen da Koordinaten für gespeichert sein...

Ansonsten könnte man einfach die Schwarz markierten Areale im linken unteren Bild "manuell" identifizieren (Farbwert des Bildpunkts auslesen, wenn weis nix tun, wenn Schwarz nachbarpunkte suchen, identifizieren und dann den Schwerpunkt der Form ausrechnen (Summieren aller Koordinaten und dividieren durch die anzahl der zusammenhängenden Punkte).

Aber wie gesagt: An sich müsste es sowas vorgefertigt in Vision geben, denn letztlich müssen die Schwarzen kreise da ja in irgendeiner Form ähnlich ausgewertet und erzeugt worden sein. Oder erstellst du die manuell? Dann wirds begrenzt komplizierter. Dann müsstest du die FFT nehmen und die Helleren bereiche identifizieren (Helle Punkte suchen, benachbarte Helle Bereiche suchen, gewichtetes Mittel bilden (Helligkeitswert mal Koordinate / Gesamter Helligkeitswert). Randbedingung: In einem Kreis mit durchmesser x müssen mindestens die Hälfte der Punkte Hell sein (oder mehr - ausprobieren), damit du nicht auch das rauschen als Hellen bereich identifizierst.