2009-03-05 14 views
2

Ich versuche, Formgrenzen durch Verwendung von Fourier-Deskriptoren zu approximieren. Ich weiß, dass dies getan werden kann, weil ich davon im Unterricht erfahren habe und in mehreren Quellen darüber gelesen habe.Approximieren einer Formgrenze unter Verwendung von Fourier-Deskriptoren

der Fourier-Deskriptoren einer Grenze (x, y) Koordinaten zu erhalten, habe ich folgendes: 1) Schalten (x, y) -Koordinaten in komplexe Zahlen der Form x + iy 2) dieses neuen Feed Satz von Zahlen in die 1D-Fourier-Transformation 3) die Ausgabe sind die Fourier-Deskriptoren

die Grenze anzunähern, entferne ich einfach (auf Null gesetzt) ​​die hohen Frequenzen, gelten die inverse Fourier, dann konvertiert die komplexen Zahlen verwandeln Zurück zu (x, y) Koordinaten und rekonstruiere dann das Bild von diesem neuen Satz von Koordinaten. Das Ziel meines Projekts ist herauszufinden, wie gut ich Grenzen annähern kann, abhängig davon, wie viele der Begriffe ich auf Null gesetzt habe.

Mein Problem ist, dass, wenn ich eine der Frequenzen auf 0 setzt, mein Ausgabebild sehr klein ist und als sehr seltsame Muster herauskommt.

Ich habe ein Beispiel unten eingefügt. Das Eingabebild ist ein normales Quadrat. Das erste ausgegebene Bild ist die Rekonstruktion des Bildes unter Verwendung aller Fourier-Deskriptoren als normal. Beachten Sie, dass die gesamte Grenze nicht vorhanden ist, da die Anzahl der Randpixel auf 256 abgetastet wurde und ich die Punkte nicht verbunden habe, wenn ich sie ausgäbe. Beachten Sie auch, dass die Ausgabe in die untere linke Ecke übersetzt wurde, dies war absichtlich. Das zweite Ausgabebild ist, wenn ich nur die ersten 128 Frequenzen verwende.

Input Image http://img19.imageshack.us/my.php?image=square0.bmp

Output Image 1: All frequencies http://img27.imageshack.us/my.php?image=square0normal.bmp

Output Image 2: First half of frequencies http://img23.imageshack.us/my.php?image=square0out.bmp

Hat keine Ahnung, jemand, warum dies geschieht werden könnte?

Edit: Zum ersten Mal Bilder auf hier setzen, nicht sicher, warum sie nicht nach oben zeigen .. hier sind die Links:
Input image
Output1
Output2

Auch hier ist ein link to a document that talks about this a bit, Es beginnt am Ende der Seite 5.

+0

Ich würde versuchen, Bildkoordinaten auf [0,1] Intervall zu normalisieren, bevor die Fourier-Transformation zugeführt und dann am Ausgang denormalisiert wird. – Ismael

+0

Es scheint, dass Sie die Genauigkeit verlieren, aber es scheint nicht mit der Fourier-Transformation verwandt zu sein, weil die erste Ausgabe richtig aussieht. Hast du ein anderes Bild versucht? Ich würde etwas asymmetrisches vorschlagen. – Ismael

+0

Würde dies tatsächlich die Ergebnisse beeinflussen, außer vielleicht die Größe des Bildes? Ich sehe nicht wirklich, wie .. – MahlerFive

Antwort

1

Das Ergebnis, das Sie erhalten, ist, was erwartet werden würde, wenn Sie die niedrigen Frequenzen anstelle der hohen herauswerfen würden. Sind Sie sich sicher, welche Frequenzen welche sind?

+0

Anscheinend sind die niedrigen Frequenzen die letzten Deskriptoren, nicht die ersten ... Ich habe gerade umgekehrt, welche Frequenzen auf Null gestellt werden, und es funktioniert jetzt gut, danke! – MahlerFive

+0

Ich habe gerade gemerkt, dass ich mich wieder geirrt habe, und dass die Deskriptoren in der Mitte des Arrays die niedrigen Frequenzen sind, also habe ich sie vom Zentrum aus auf Null gesetzt und es funktioniert jetzt viel besser – MahlerFive

Verwandte Themen