Fourier Transformation für Bilder

Stetige Fourier Transformation

FourierImage_1.gif

FourierImage_2.gif

FourierImage_3.gif

FourierImage_4.gif

Linearer Anstieg

FourierImage_5.gif

FourierImage_6.gif

FourierImage_7.gif

FourierImage_8.gif

FourierImage_9.gif

FourierImage_10.gif

Sprung-Funtion

FourierImage_11.gif

FourierImage_12.gif

FourierImage_13.gif

FourierImage_14.gif

FourierImage_15.gif

FourierImage_16.gif

Flächennormierter Kasten

FourierImage_17.gif

FourierImage_18.gif

FourierImage_19.gif

FourierImage_20.gif

FourierImage_21.gif

FourierImage_22.gif

Gauss-Glocke

FourierImage_23.gif

FourierImage_24.gif

FourierImage_25.gif

FourierImage_26.gif

FourierImage_27.gif

FourierImage_28.gif

Disktrete Fourier Transformation

FourierImage_29.gif

FourierImage_30.gif

Neben der unsymmetrischen Form gibts natürlich auch noch die symmetrische Form in der Hin- und Rücktransformation mit FourierImage_31.gif normiert werden.

für die allgemeine Fourier -Transformation is das Signal immer auf dem Interval [0,2π)

Bei diskreter Sin- und Cos-Transformation auf dem Interval [0,π)

die Signale sind immer periodisch

Schnelle (diskrete) Fourier-Transformation

Eine numerisch effiziente Variante gibt es immer, wenn N keine Primzahl ist. Die meisten numerischen Implementationen verwenden (und erfordern) , dass N eine Potenz von 2 ist.

FourierImage_32.gif

FourierImage_33.gif

FourierImage_34.gif

Das Berechnen würde FourierImage_35.gifOperationen erfordern. Die Schnelle Fourier-Transformation benötigt nur ∝N log(N) Operationen.

FourierImage_36.gif

FourierImage_37.gif

FourierImage_38.gif

Man kann also die Fourier-Transformierte einer Folge FourierImage_39.gif der Länge N aus den Fourier-Transformierten der geraden Teilfolge (der Länge N/2) und der Transformierten der ungeraden Teilfolge (ebenfalls der Länge N/2) berechnen. Ist N durch 3 Teilbar  erhält man analog zur obigen Formel

FourierImage_40.gif

Eine rekursive Zerlegung gelingt also immer wenn N keine Primzahl ist. Bei die Implementation für FourierImage_41.gif wird zuerstder Eingabevektor umgeordnet,  für N=8 benötigt man zwei Rekursionsstufen

1.Stufe 2. Stufe 3. Stufe
FourierImage_42.gif FourierImage_43.gif FourierImage_44.gif
FourierImage_45.gif FourierImage_46.gif FourierImage_47.gif
FourierImage_48.gif FourierImage_49.gif FourierImage_50.gif
FourierImage_51.gif FourierImage_52.gif FourierImage_53.gif
FourierImage_54.gif FourierImage_55.gif FourierImage_56.gif
FourierImage_57.gif FourierImage_58.gif FourierImage_59.gif
FourierImage_60.gif FourierImage_61.gif FourierImage_62.gif
FourierImage_63.gif FourierImage_64.gif FourierImage_65.gif

In der Binärdarstellung des Indexes ergibt sich für die Positionen:

FourierImage_66.gif FourierImage_67.gif FourierImage_68.gif FourierImage_69.gif FourierImage_70.gif FourierImage_71.gif
FourierImage_72.gif 000 FourierImage_73.gif 000 FourierImage_74.gif 000
FourierImage_75.gif 001 FourierImage_76.gif 010 FourierImage_77.gif 100
FourierImage_78.gif 010 FourierImage_79.gif 100 FourierImage_80.gif 010
FourierImage_81.gif 011 FourierImage_82.gif 110 FourierImage_83.gif 110
FourierImage_84.gif 100 FourierImage_85.gif 001 FourierImage_86.gif 001
FourierImage_87.gif 101 FourierImage_88.gif 011 FourierImage_89.gif 101
FourierImage_90.gif 110 FourierImage_91.gif 101 FourierImage_92.gif 011
FourierImage_93.gif 111 FourierImage_94.gif 111 FourierImage_95.gif 111

Die Position ist als gerade die Bit-Spiegelung des Original Indexes.  Nach der Umordng kann man immer aus den nächsten Nachbarn die neuen Werte der Folge FourierImage_96.gif berechnen.

Analog, kann man Formeln für N=3,5,7,.. aufstellen. Ein schneller Algorithmus existiert immer dann wenn die Signallänge keine Primzahl ist. Da die meisten Bibliotheken nur die Formeln für kleine Primzahlen implementieren sollte man Signallängen vermeiden, deren Faktorisierung ein oder meherere grosse Primzahlen enthält.

DFT für Bilder

Die diskrete Fourier-Transformation für ein reeles Signal muß symmetrisch sein. Da das Signal periodisch ist, liegt der Nullpunkt bei (0,0), (0,2π),(2π,0),(2π,2π). Eine Transformation der Fourier-Koeffizienten muss die Symmetriy des Signals beibehalten.

FourierImage_97.gif

FourierImage_98.gif

Eigentlich soll aber das Interval [-π,π)×[-π,π) verwendet werden.

FourierImage_99.gif

Tiefpass

FourierImage_100.gif

FourierImage_101.gif

FourierImage_102.gif

FourierImage_103.gif

Hochpass

FourierImage_104.gif

FourierImage_105.gif

FourierImage_106.gif

Tiefpass + Hochpass

FourierImage_107.gif

FourierImage_108.gif

Faltung & lineare Filter

Die häufigste Anwendung der Fourier-Transformation sind Faltungen.

FourierImage_109.gif

FourierImage_110.gif

FourierImage_111.gif

Kommutativ

FourierImage_112.gif

Assoziativ

FourierImage_113.gif

Distributiv

FourierImage_114.gif

Faltungstheorem

Wenn die Fourier-Transformierte von x(t) durch F[x](ω) gegeben ist, dann gilt für die Fourier-Transformierte der Faltung:

FourierImage_115.gif

d ist dabei die Dimension von x.

Beispiele für Filter

Bei den Beispielen ist bei der Faltung via Fourier-Transformation der Skalierungsfaktor weg gelassen worden, weil Mathematica die Daten ohnehin skaliert.

Die Verwendung der Fourier-Transformation ist für so kurze Filter nicht effizient. Der Filter sollte mehr als 25 Elemente haben, die von 0 verschieden sind, damit das Expandieren des Filters auf die Größe des Signals und zwei Fourier-Transformationen effizienter sind als die Summationen. Wenn der selbe Filter mehrfach auf verschiedene Bilder angewendet wird sind Faltungen mit kleineren Filtern bereits effizient.

Nummerische Approximation der zweiten Ableitung

FourierImage_116.gif

Direkte Faltung

FourierImage_117.gif

FourierImage_118.gif

FourierImage_119.gif

Faltung mit Fourier Transformation

FourierImage_120.gif

FourierImage_121.gif

FourierImage_122.gif

FourierImage_123.gif

FourierImage_124.gif

Relief Effekt

FourierImage_125.gif

Direkte Faltung

FourierImage_126.gif

FourierImage_127.gif

FourierImage_128.gif

Faltung mit Fourier Transformation

FourierImage_129.gif

FourierImage_130.gif

FourierImage_131.gif

FourierImage_132.gif

Schärfen

FourierImage_133.gif

Direkte Faltung

FourierImage_134.gif

FourierImage_135.gif

FourierImage_136.gif

Faltung mit Fourier Transformation

FourierImage_137.gif

FourierImage_138.gif

FourierImage_139.gif

FourierImage_140.gif

Kanten

FourierImage_141.gif

Direkte Faltung

FourierImage_142.gif

FourierImage_143.gif

FourierImage_144.gif

Faltung mit Fourier Transformation

FourierImage_145.gif

FourierImage_146.gif

FourierImage_147.gif

FourierImage_148.gif

Weichzeichnen

FourierImage_149.gif

Direkte Faltung

FourierImage_150.gif

FourierImage_151.gif

FourierImage_152.gif

Faltung mit Fourier Transformation

FourierImage_153.gif

FourierImage_154.gif

FourierImage_155.gif

FourierImage_156.gif

Vorbereitung

FourierImage_157.gif

FourierImage_158.gif

FourierImage_159.gif

FourierImage_160.gif

FourierImage_161.gif

FourierImage_162.gif

FourierImage_163.gif

FourierImage_164.gif

FourierImage_165.gif

FourierImage_166.gif

Spikey Created with Wolfram Mathematica 7.0