Computergrafik 2: Fourier-Transformation Prof. Dr. Michael Rohs, Dipl.-Inform. Sven Kratz michael.rohs@ifi.lmu.de MHCI Lab, LMU München Folien teilweise von Andreas Butz, sowie von Klaus D. Tönnies (Grundlagen der Bildverarbeitung. Pearson Studium, 2005)
Themen heute Fourier-Transformation Grundidee Konstruktion der Fourier-Basis Phase und Amplitude Eigenschaften der FT Konvolution und Korrelation im Frequenzraum Schnelle Fourier-Transformation (FFT) Computergrafik 2 SS20 2
Motivation Manche Operationen sind im Ortsraum (d.h. auf den Pixeln des Bildes) schwer Herausfiltern bestimmter Frequenzen Beseitigung störender Details Konvolution, Korrelation Frequenzraum als Labor zur Entwicklung von Filtern Idee: übertrage Bild in einen Raum, in dem diese Operationen leichter sind z.b. Zerlegung des Bildes in Frequenzen Rückweg muss möglich sein! Verschiedene Möglichkeiten, gleiches Prinzip Computergrafik 2 SS20 3
Beispiel: Artefakte entfernen R. C. Gonzalez & R. E. Woods, Digital Image Processing Computergrafik 2 SS20 4
Motivation Bisher: Darstellung des Bildes im Ortsraum durch den Grauwert an einem bestimmten Ort Jetzt: Darstellung im Frequenzraum durch cos und sin Funktionen verschiedener Frequenzen Eindeutige und vollständige Darstellung in beiden Räumen Ortsraum Frequenzraum Fourier-Transformation inverse Fourier- Transformation Computergrafik 2 SS20 5
Fourier Jean Baptiste Joseph Fourier (768-830) Französischer Physiker und Mathematiker Erfinder der Fourier- Transformation Johann Bernoulli Advisor Leonhard Euler Advisor Joseph Louis Lagrange Advisor Jean Baptiste Joseph Fourier Quelle: www.genealogy.ams.org Computergrafik 2 SS20 6
Fourier-Transformation: Grundidee Beschreibe beliebige Funktion als gewichtete Summe periodischer Grundfunktionen (Basisfunktionen) mit unterschiedlicher Frequenz Computergrafik 2 SS20 7
Parameter Periodischer Grundfunktionen y(x) Asin(2! f x +") A Amplitude: Intensität des Signals φ Phase: Verschiebung zum Ursprung Frequenz zeitlich f(t) Frequenz räumlich f(x) T Periodendauer [s] λ Wellenlänge [m] f Frequenz f /T [/shz] f Raumfrequenz f/λ [/m] ω Kreisfrequenz ω2πf k Wellenzahl k 2π/λ y A φ T bzw. λ x Computergrafik 2 SS20 8
Funktion mit sin und cos multiplizieren Originalfunktion f (x), x 0.. Abtastungsfunktionen cos(!2! x) sin(!2! x) Ergebnis (f*sin und f*cos) f (x)! cos("2! x) f (x)!sin("2! x) Computergrafik 2 SS20 9
sin(!2! x) f (x)"sin(!2! x) F sin () sin(!2! 2x) f (x)"sin(!2! 2x) F sin (2) sin(!2! 4x) f (x)"sin(!2! 4x) F sin (4) # $ f (x)sin(...)dx 0!# sin(!2! 5x) f (x)"sin(!2! 5x) F sin (5) # $ f (x)sin(...)dx 0!# sin(!2! 3x) f (x)"sin(!2! 3x) F sin (3) # $ f (x)sin(...)dx > 0!# # $ f (x)sin(...)dx > 0!# # $ f (x)sin(...)dx > 0!# f (x) Computergrafik 2 SS20 0
cos(!2! x) f (x)" cos(!2! x) F cos () cos(!2! 2x) f (x)" cos(!2! 2x) F cos (2) cos(!2! 4x) f (x)" cos(!2! 4x) F cos (4) # $ f (x)" cos(...)dx 0!# cos(!2! 5x) f (x)" cos(!2! 5x) F cos (5) f (x) # $ f (x)" cos(...)dx 0!# cos(!2! 3x) f (x)" cos(!2! 3x) F cos (3) # $ f (x)" cos(...)dx 0!# # $ f (x) " cos(...)dx 0!# # $ f (x)" cos(...)dx 0!# Computergrafik 2 SS20
Fouriers Theorem Jede beliebige periodische Funktion lässt sich darstellen als Summe von sin und cos Funktionen unterschiedlicher Frequenzen. Ist die Funktion nicht periodisch, aber auf einen bestimmten Definitionsbereich beschränkt, so kann man diesen Bereich einfach kopieren (periodisch fortsetzen) und hat damit wieder eine periodische Funktion. Die Zeilen und Spalten eines Bildes kann man als nichtperiodische diskrete Funktionen auffassen. Man kann also auch ein Bild Fourier-transformieren. Computergrafik 2 SS20 2
kontinuierliche Fourier-Transformation Transformation vom Ortsraum in den Frequenzraum F(u) # "!" f (x)e!2!ixu dx Transformation vom Frequenzraum in den Ortsraum f (x) # "!" F(u)e 2!ixu du Im z a+bi re iφ r φ sin φ b - cos φ Re a - Computergrafik 2 SS20 3
Ist ein Bild eine periodische Funktion? Computergrafik 2 SS20 4
Ist ein Bild eine periodische Funktion? Zunächst: Betrachtung der periodischen Fortführung einer Zeile λ (N Pixel) λ (N Pixel) λ (N Pixel) λ (N Pixel) λ (N Pixel) Computergrafik 2 SS20 5
Beispiel: F()... Originalfunktion f (x), x 0.. Gewichtungsfunktionen real(e!i2! x ) cos(!2! x) imag(e!i2! x ) sin(!2! x) Ergebnis (f*sin und f*cos) real( f (x)! e "i2! x ) imag( f (x)! e "i2! x ) F() # $ f (x)! e "i2! x dx, F() > 0 "# Computergrafik 2 SS20 6
Beispiel: F(2)... Originalfunktion f (x), x 0.. Gewichtungsfunktionen real(e!i2! 2 x ) cos(!2! 2x) imag(e!i2! 2 x ) sin(!2! 2x) Ergebnis (f*sin und f*cos) real( f (x)! e "i2! 2 x ) imag( f (x)! e "i2! 2 x ) F(2) # $ f (x)! e "i2! 2 x dx, F(2) 0 "# Computergrafik 2 SS20 7
e!i2! x f (x)e!i2! x f (x) # F() $ f (x)" e!i2! x dx > 0 e!i2! 2 x!# f (x)" e!i2! 2 x F(2) # $ f (x)" e!i2! 2 x dx 0!#!i2! 3x e!i2! 3x f (x)" e F(3) e!i2! 4 x f (x)" e!i2! 4 x # $ f (x)" e!i2! 3x dx > 0!# F(4) # $ f (x)e!i2! 4 x dx 0!#!i2! 5x e!i2! 5x f (x)" e F(5) # $ f (x)" e!i2! 5x dx > 0!# Computergrafik 2 SS20 8
Fourier-Transformation: Eigenschaften Transformation: verändert eine Funktion nicht, sondern stellt sie nur anders dar Transformation ist umkehrbar à inverse Fourier-Transformation Analog zum Basiswechsel in der Vektorrechnung Computergrafik 2 SS20 9
Computergrafik 2 SS20 20 Exkurs: Vektorrechnung 0 0, 0 0, 0 0 bilden eine Basis b des R 3 sind paarweise orthogonal haben Länge 0 0, 0 2 / 2 /, 0 2 / 2 / bilden ebenfalls eine Basis b 2 des R 3 sind ebenfalls paarweise orthogonal Haben ebenfalls Länge 0 0 0 2 / 2 / 0 2 / 2 / Ist orthogonal und normiert (d.h. M T M - ) Ist Basiswechselmatrix von b nach b 2
Basiswechsel Sei V ein n-dimensionaler Vektorraum über Körper K mit Basen B{b,..., b n } und B {b,..., b n } Darstellung der Vektoren von B in B : Darstellung des Vektors v in B: Darstellung des Vektors v in B : v v n! i n! i b j x i b i x i 'b i ' n! i a ij b i ' v n n n n " n % n n! x j b j! x! j a ij b i '! $! x j a iji ' b ' i! c i b i '! x i 'b i ' j j i i # j & i i Computergrafik 2 SS20 2
Basiswechsel v n n n n " n % n n! x j b j! x! j a ij b i '! $! x j a iji ' b ' i! c i b i '! x i 'b i ' j j i i # j & i i Also: x i ' n! j x j a iji mit b j n! i a ij b i ' in Matrix-Notation:! # # # " x '! x n ' $! & # & # & # % " a " a n! #! a n " a nn $! &# &# & # %" x! x n $ & & & % Computergrafik 2 SS20 22
Anschaulich: Basisvektoren eines Bildes 0 0 * 0 0 0 + 0 * + * + 0 * 0 0 0 0 0 0 0 0 0 bilden eine Basis des R 4 sind paarweise orthogonal haben Länge Wahl anderer Basisvektoren è Transformation mittels Basiswechsel Basiswechselmatrix vom Rang der Pixelanzahl Computergrafik 2 SS20 23
Orthogonale Funktionen Seien f und f 2 Funktionen, die an N Stellen abgetastet sind (also N-dim. Vektoren) f und f 2 sind orthogonal, falls gilt: * N f f f ( k) f ( k) 2 k 0 2 D.h. das Skalarprodukt der zugehörigen Vektoren ist 0 N paarweise orthogonale Funktionen f f N bilden damit eine orthogonale Basis des N-dim. Raums Transformationen zwischen orthogonalen Basen sind immer umkehrbar 0 Computergrafik 2 SS20 24
Orthogonale Funktionen Computergrafik 2 SS20 25
Orthogonale Funktionstransformationen Betrachte abgetastete Funktionen wie Vektoren Finde neue geeignete orthogonalen Basis Üblicherweise Basisfunktionen, die Bedeutung bzgl. der betrachteten Eigenschaft haben Fourier-Basis: komplexe, periodische Funktionen Kosinusbasis: Kosinusfunktionen Transformiere Bild in diese Basis Bearbeite es dort Transformiere zurück y Ax x A y Computergrafik 2 SS20 26
Fourierbasis (. Versuch, nur cos) Ausgangspunkt: Bildzeile mit N Pixeln. Versuch: wähle N Kosinusfunktionen " cos$ 0! 2! # N % & ', cos " $! 2! # N % & ', cos " $ 2! 2! # N % & ',..., cos " $ (N ()! 2! # N % ' & Beispiel nächste Folie: N 5 Problem: abgetastete Funktionswerte gleich für i und i4 sowie i 2 und i 3 also keine Basis der Dimension N 5 Vektoren spannen nur 3-dim. Untervektorraum auf Computergrafik 2 SS20 27
0*2π/5 *2π/5 2*2π/5 3*2π/5 4*2π/5 5*2π/5 6*2π/5 7*2π/5.0.0.0.0.0.0 0.3-0.8-0.8 0.3.0-0.8 0.3 0.3-0.8.0-0.8 0.3 0.3-0.8.0 0.3-0.8-0.8 0.3.0.0.0.0.0.0 0.3-0.8-0.8 0.3.0-0.8 0.3 0.3-0.8 Computergrafik 2 SS20 28
Fourierbasis (. Versuch, nur cos) N5, u i, u j 4 N u j Problem: falls u i N u j ist, sind die Abtastungen gleich è nur N/2 Funktionen verfügbar, keine Basis Siehe auch Shannon-Nyquist Theorem, Aliasing Computergrafik 2 SS20 29
Fourierbasis (. Versuch, nur cos) N 4 Computergrafik 2 SS20 30
0*2π/5 *2π/5 2*2π/5 3*2π/5 4*2π/5 5*2π/5 6*2π/5 7*2π/5 cos:.0.0.0.0.0 sin: 0.0 0.0 0.0 0.0 0.0 cos:.0 0.3-0.8-0.8 0.3 sin: 0.0.0 0.6-0.6 -.0 cos:.0-0.8 0.3 0.3-0.8 sin: 0.0 0.6 -.0.0-0.6 cos:.0-0.8 0.3 0.3-0.8 sin: 0.0-0.6.0 -.0 0.6 cos:.0 0.3-0.8-0.8 0.3 sin: 0.0 -.0-0.6 0.6.0 cos:.0.0.0.0.0 sin: 0.0 0.0 0.0 0.0 0.0 cos:.0 0.3-0.8-0.8 0.3 sin: 0.0.0 0.6-0.6 -.0 cos:.0-0.8 0.3 0.3-0.8 sin: 0.0 0.6 -.0.0-0.6 Computergrafik 2 SS20 3
Basisfunktionspaare (cos, sin) N 4 Computergrafik 2 SS20 32
Erinnerung: komplexe Zahlen Im Bereich der reellen Zahlen gibt es keine Lösung für x² - Einführung der imaginären Zahlen i: Lösung der Gleichung x² - Die Gruppe der reellen und imaginären Zahlen nennt man komplexe Zahlen Komplexe Zahl z: z a + i b, wobei a und b reell sind Computergrafik 2 SS20 33
Erinnerung: komplexe Zahlen Imaginäre Achse Realteil a r θ z Imaginärteil i*b Reelle Achse z iθ a + ib r e r(cos( θ) + i sin( θ )) Computergrafik 2 SS20 34
Komplexe periodische Funktionen Computergrafik 2 SS20 35
Komplexes Skalarprodukt Skalarprodukt zweier Vektoren mit komplexen Elementen! x b! N" N" # x i! y * i # Re(x i )+ iim(x i ) i0 i0 ( )( Re(y i )"iim(y i )) Zu x a + ib komplexkonjugierte Zahl ist x* a - ib Computergrafik 2 SS20 36
Fourierbasis (2. Versuch, komplexe Fn.) 2. Versuch: wähle komplexe Funktionen f cos( un) + isin( un) Wobei u ein ganzzahliges Vielfaches von u 0 2π/N à N verschiedene Funktionen Ist eine Basis Computergrafik 2 SS20 37
Repräsentation als Exponentialfunktion cos( α α i( x+ α ) x + ) + isin( x + ) e e ix e iα Computergrafik 2 SS20 38
D-Basisfunktionen 0 0 b 0 (n) [(, 0),(, 0),...,(, 0)] Computergrafik 2 SS20 39
2D-Basisfunktionen Frequenz: Richtungsvektor: r(u, v) f (u, v) u 2 + v 2 f (u, v)! # " Computergrafik 2 SS20 40 u v $ & %
2D-Fourier-Transformationspaar Transformationspaar für Bilder der Größe M N Transformation vom Ortsraum in den Frequenzraum F(u, v) ) M" m0) N" n0 # # f (m, n)! exp %"i2! % um M + vn $ $ N Transformation vom Frequenzraum in den Ortsraum f (m, n) MN ) M( m0) N( n0 && (( '' " " F(u, v)! exp$ i2! $ um M + vn # # N %% '' && Computergrafik 2 SS20 4
2D-Fourier-Transformationspaar Transformationspaar für Bilder der Größe N N Transformation vom Ortsraum in den Frequenzraum F(u, v) N ) N" m0) N" n0 # f (m, n)! exp %"i 2! $ N & ( um + vn) ( ' Transformation vom Frequenzraum in den Ortsraum f (m, n) N ) N( m0) N( n0 " F(u, v)! exp$ i 2! # N % ( um + vn) ' & Computergrafik 2 SS20 42
Phase und Amplitude Funktionswerte von F(u,v) a+ib sind komplexe Zahlen Betrag eines Funktionswerts: Amplitude F(u,v) sqrt(a 2 +b 2 ) Winkel zur reellen Achse: Phase tan - (b/a) Amplitude und Phase sind Parameter der jeweiligen Basisfunktion Computergrafik 2 SS20 43
Zweidimensionale Fouriertransformation Computergrafik 2 SS20 44
Beispiele für Amplitude FT FT Computergrafik 2 SS20 45
Darstellungsweise Original Amplitude (zentriert, d.h. von N/2 bis N/2) Amplitude (log. Skala) Amplitude (zentriert, log. Skala) Computergrafik 2 SS20 46
Beispiele Amplitude Phase Computergrafik 2 SS20 47
Einfluss von Amplitude und Phase Computergrafik 2 SS20 48
Translation Computergrafik 2 SS20 49
Computergrafik 2 SS20 50
Phasenverschiebung Computergrafik 2 SS20 5
Computergrafik 2 SS20 52
Periodizität und Symmetrie F(u) ) N" n0 # f (n)! exp "i2! un & % ( $ N ' x Computergrafik 2 SS20 53
Separabilität Computergrafik 2 SS20 54
Konvolution und Korrelation Konvolution und Korrelation sind zwei eng verwandte Filter-Operationen. Beide können im Ortsraum und im Frequenzraum ausgeführt werden. Die Operation im Frequenzraum ist eine einfache Multiplikation (Aufwand N 2 ). Achtung: Padding wegen Periodizität! P A + B - Computergrafik 2 SS20 55
Konvolution im Frequenzraum Computergrafik 2 SS20 56
Konvolution im Frequenzraum D-Konvolution f (x)! h(x) $ N# f (n)" h(x # n) n0 % F(u)" H(u) 2D-Konvolution M" # f (x, y)! h(x, y) f (m, n) $ h(x " m, y " n) m0# n0 % F(u, v)$ H(u, v) N" Computergrafik 2 SS20 57
Wraparound Error Padding: P A + B - R. C. Gonzalez & R. E. Woods, Digital Image Processing Computergrafik 2 SS20 58
Padding R. C. Gonzalez & R. E. Woods, Digital Image Processing Computergrafik 2 SS20 59
FAST FOURIER TRANSFORM (FFT) Computergrafik 2 SS20 60
Vorgehensweise generell Vereinfachende Annahme: N2 k, k> Nutze Separabilität, um 2D-FT auf D zurückzuführen (O(N 4 ) à O(N 3 )) Teile Summe in zwei Teilsummen auf Finde Gemeinsamkeiten in den Teilsummen und berechne beide Teilsummen miteinander Betrachte die Teilsumme und unterteile rekursiv bis N (O(N 3 ) à O(N 2 log N) Computergrafik 2 SS20 6
Computergrafik 2 SS20 62 Separabilität + 0 0 0 0 0 0 0 2 0 0 2 ) ( 2 exp 2 )exp, ( 2 exp 2 exp 2 )exp, ( 2 exp 2 )exp, ( ) ( 2 )exp, ( ), ( N m u N m N n N m N n N m N n N m N n m F um N i N vn N i n m f N um N i N um N i vn N i n m f N N vn N i um N i n m f N vn um N i n m f N v u F π π π π π π π π Vorgehensweise: F u (m) für alle Spalten m berechnen und dann bei den Zeilen verwenden.
Computergrafik 2 SS20 63 Divide Schritt + + + 0 ) (2 2 0 2 2 2 0 2 0 ) )( (2 ) )( (2 2 ) )( ( 2 ) )( ( ) ( 2 exp, 2 K n u n K K n nu K K n un K N n un N N W n f K W n f K W n f K W n f N u F N i W K N π ( ) u K odd even K n nu K odd K n nu K even W u F u F u F W n f K u F W n f K u F ) )( ( ) ( 2 ) ( ) )( (2 ) (, ) )( (2 ) ( 2 0 2 2 0 2 2 + + Finde Gemeinsamkeiten in den Teilsummen Teile Summe in zwei Teilsummen auf
Ausnutzen der Periodizität ( W K ) u+n ( W K ) u,( W 2K ) u+k!( W 2K ) u " N 2K,W N exp $!i 2! # N % ' & ( ) 2 F u + K even ( ) + F odd ( u + K) ( W 2K ) u+k F u + K 2 F even u ( ) ( ( )! F odd ( u) ( W 2K ) u ) Also kann man F(u+K) mithilfe F(u) berechnen (einmal F even + F odd, einmal F even F odd ) Betrachte die Teilsumme [0 K-] und unterteile rekursiv bis K (O(n 3 ) à O(n 2 log n) Computergrafik 2 SS20 64
Fourier Transformation zum Anschauen http:// www.cs.brown.edu/ exploratories/ Computergrafik 2 SS20 65
Überlagerung von Schwingungen: anschaulich http://www.jhu.edu/~signals/index.html Computergrafik 2 SS20 66