Technische Universität München Fakultät für Informatik Forschungs- und Lehreinheit Informatik IX Filterung im Frequenzraum: Fouriertransformation Proseminar: Grundlagen Bildverarbeitung / Bildverstehen Michael Dengler Betreuer: Suat Gedikli Abgabetermin: 23. Januar 2007 Inhaltsverzeichnis 1 Einleitung und Motivation 2 2 Die Fouriertransformation 2.1 Fourieranalyse . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Die diskrete Fouriertransformation (DFT) . . . . . . . . . . . 2.2.1 Bildrepräsentation . . . . . . . . . . . . . . . . . . . . 2.2.2 Herleitung der eindimensionalen Fouriertransformation 2.2.3 Bezug zur Fourierreihe . . . . . . . . . . . . . . . . . . 2.2.4 Die zweidimensionale Fouriertransformation . . . . . . 2.3 Eigenschaften der Fouriertransformation . . . . . . . . . . . . 2.3.1 Allgemeine Eigenschaften . . . . . . . . . . . . . . . . 2.3.2 Frequenz und Richtung . . . . . . . . . . . . . . . . . 2.3.3 Amplitude und Phase . . . . . . . . . . . . . . . . . . 2.3.4 Mittelwert . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.5 Separabilität . . . . . . . . . . . . . . . . . . . . . . . 2.4 Die schnelle Fouriertransformation (FFT) . . . . . . . . . . . 2.5 Anwendungen der Fouriertransformation . . . . . . . . . . . . 2.5.1 Faltung . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Korrelation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 4 4 6 7 8 8 8 9 9 10 11 12 12 13 3 Fazit und Ausblick 14 4 Literaturverzeichnis 15 1 1 Einleitung und Motivation Im Rahmen des Proseminars Grundlagen Bildverarbeitung / Bildverstehen wurde bereits die Faltung als wichtige Operation zum Filtern von Bildern vorgestellt. Dazu wird ein ein Bild im Ortsraum als Folge von Dirac-Impulsen aufgefasst. Ist die Impuls- bzw. Punktantwort eines Filters bekannt, kann das gefilterte Bild durch Faltung der Bildfunktion mit der Impulsantwort bestimmt werden. Oft ist diese Berechnung aber umständlich oder zu aufwändig. Will man beispielsweise ein Bild von einem sinusförmigen Störsignal befreien, muss man Amplitude, Phase und Frequenz der Störung kennen, um das Filter im Ortsraum berechnen zu können. Viel einfacher wäre es, wenn statt der Repräsentation eines Bildes als Folge von Grauwerten eine alternative Darstellung als Überlagerung verschiedener Schwingungen existieren würde. Jede Schwingung entspricht dann einer Grauwertschwankung. Auf diese Weise könnte die störende Schwingung lokalisiert und entfernt werden. (vgl. Tönnies05 [5, S. 64]) Welche Schwingungen in einem Bild enthalten sind, entnimmt man dem Frequenzraum. Die Fouriertransformation und inverse Fouriertransformation überführen ein Bild vom Ortsraum in den Frequenzraum und wieder zurück. Es wird sich herausstellen, dass die komplexe Operation der Faltung im Ortsraum mit einer einfachen Multiplikation im Frequenzraum korrespondiert. Mit der schnellen Fouriertransformation existiert ein Algorithmus, der den Berechnungsaufwand für die Faltung erheblich senkt. 2 2 Die Fouriertransformation 2.1 Fourieranalyse Bereits Anfang des 19. Jahrhunderts behauptete der französische Mathematiker Jean Baptiste Joseph Fourier, dass sich jede periodische Funktion als Linearkombination von Sinus- und Kosinusschwingungen darstellen ließe. Aus der Theorie entwickelte sich die Fourieranalysis, welche heute in zahlreichen ingenieur-und naturwissenschaftlichen Gebieten Anwendung findet. Sie beschreibt die Entwicklung einer periodischen Funktion f (t) mit Periodendauer T als Fourierreihe. (vgl. Meyberg99 [4, S. 285]) Z ∞ a0 X 2 f (t) = + (an · cos(nωt) + bn · sin(nωt)) mit an = f (t) · cos(nωt) dt (2.1) 2 T T n=1 Z 2 und bn = f (t) · sin(nωt) dt T T (vgl. Wikipedia [7]) Abbildung 2.1: Annäherung einer Rechteckschwingung durch ihre Fourierreihe a0 , 2 die Grundschwingung a1 · cos(ωt) + b1 · sin(ωt) und ihre Oberschwingungen zerlegt werden. Eine periodische Funktion kann also in einen Gleichanteil Mit der Euler-Formel eiφ = cos(φ) + i sin(φ) lässt sich die Reihe kompakter schreiben. f (t) = ∞ X n=−∞ cn e inωt 1 mit cn = T Z f (t)e−inωt dt T 3 (2.2) 2 Die Fouriertransformation Wobei für die Umrechnung zwischen den Koeffizienten gilt: 1 1 1 c0 = a0 , cn = (an − ibn ) , c−n = (an + ibn ) 2 2 2 a0 = 2c0 , an = cn + c−n , bn = i (cn − c−n ) (2.3) (vgl. Meyberg99 [4, S. 288]) Für die reellen Koeffizienten an und bn sowie für die komplexen Koeffizienten cn ergeben sich einige interessante Eigenschaften. Ist f (t) eine ungerade Funktion, also f (t) = −f (−t), und integriert man in Gleichung 2.1 von −T T 2 bis 2 folgt an = 0, weil der Kosinus eine gerade Funktion ist. Entsprechend verschwinden die bn für gerade Funktionen f , weil der Sinus eine ungerade Funktion ist. Damit folgt aus der Umrechnungsformel 2.3 direkt, dass die Koeffizienten cn für gerade Funktionen f reell und für ungerade Funktionen rein imaginär sind. Insbesondere gilt immer: f reell =⇒ an bn ∈ R ⇐⇒ c−n = c−n . (vgl. Meyberg99 [4, S. 297]) Für reelle Funktionen sind also nur die Hälfte der cn zu berechnen, der andere Teil ergibt sich durch komplexe Konjugation. 2.2 Die diskrete Fouriertransformation (DFT) 2.2.1 Bildrepräsentation Eine Funktion mit endlichem und diskretem Definitionsbereich kann entweder durch eine Abbildungsvorschrift oder durch Angabe der Funktionswerte an den einzelnen Stellen definiert werden. Beispiel • Abbildungsvorschrift: f (n) = n2 , n = 0, . . . , N − 1 • Angabe der Funktionswerte: f (n) = (0, 1, 4, 9, . . . , (N − 1)2 ) (vgl. Tönnies05 [5, S. 67]) Weil für die Helligkeitsverteilung eines Bildes in der Regel kein Bildungsgesetz vorliegt, ist die zweite Variante in der Bildverarbeitung die gebräuchliche. Bilder sind endlich und digitale Bilder zusätzlich abgetastet (diskreter Definitionsbereich) und quantisiert (diskreter Wertebereich). Eine Bildfunktion bzw. ein Bild kann also durch Angabe der Helligkeitswerte an den einzelnen Bildpunkten (Pixel) repräsentiert werden. Die Helligkeitswerte der Pixel sind über den Zeilenindex m und Spaltenindex n in einer M × N Matrix f angeordnet. (m, n) 7→ f (m, n) 2.2.2 Herleitung der eindimensionalen Fouriertransformation Die folgende Herleitung kommt alleine mit Mitteln der linearen Algebra aus. Sie ist hauptsächlich einem Wikipedia-Artikel [6] entnommen und sehr elegant, weil sie nicht, wie viele andere Herangehensweisen, die kontinuierliche Fouriertransformation diskretisiert. 4 2 Die Fouriertransformation Vereinfacht soll ein digitales Bild mit m Zeilen und n Spalten als Vektor f = (f0 , . . . , fN −1 ) ∈ CN der Länge N = m · n aufgefasst werden, in dem die Zeilen der Helligkeitsmatrix hintereinander eingereiht sind. Die Komponenten des Vektors enthalten die Helligkeitswerte der jeweiligen Pixel. (vgl. Tönnies05 [5, S. 68]) Anmerkung: Die Werte der Pixel sind natürlich keine echten komplexen Zahlen, sondern z. B. f (n) ∈ [0, 255]. Dennoch sind es komplexe Zahlen mit nicht vorhandenem Imaginärteil. Dieser Helligkeitsvektor kann jetzt auch in eine andere Basis des CN , in diesem Fall die Fourierbasis, transformiert werden. Die Fourierbasis wird mit Hilfe von Potenzen der N-ten Einheitswurzel wN = exp i 2π N gebil (un) 2π N det. Die Vektoren bu ∈ C mit bu (n) = wN = exp iun N , u, n = 0, . . . , N − 1 bilden eine orthogonale Basis des CN bezüglich des Skalarprodukts hx, yi = N −1 1 X xk ȳk . N k=0 ȳk bezeichnet die konjugiert komplexe Zahl. Beispiel: Für N = 4 ist w4 = exp[i 2π 4 ] = i und die Basisvektoren lauten: 1 1 1 i , 1 −1 1 −i 1 1 −1 −i , 1 , −1 −1 i . Die Basisvektoren sind zueinander orthogonal, weil für ihr Skalarprodukt gilt: ( N −1 1 u=v 1 X (u−v)n wN = δu,v = hbu , bv i = N 0 u 6= v n=0 (vgl. Wikipedia [6]) (u−v) Beweis: Für u = v ist jeder der N Summanden 1, für u 6= v ist z := wN eine von 1 verschieN dene N -te Einheitswurzel, also z = 1 und es folgt mit der geometrischen Summenformel: N −1 X (u−v)n wN = 1 + z + z 2 · · · + z N −1 = n=0 zN − 1 =0 z−1 (vgl. Meyberg99 [4, S. 328]) Der Vektor f = (f0 , . . . , fN −1 ) ∈ CN kann also als Linearkombination der Fourier-Basisvektoren dargestellt werden. f= N −1 X λ u bu u=0 Da die Fourier-Basisvektoren bu mit dem definierten Skalarprodukt eine orthonormale Basis bilden, ist die Bestimmung der Koeffizienten λu besonders einfach. Mit der Linearitätseigenschaft 5 2 Die Fouriertransformation des Skalarproduktes gilt nämlich: N −1 X hf, bu i = h λ v bv , b u i = v=0 N −1 X λv hbv , bu i = N −1 X v=0 λv δv,u = λu . v=0 Die Vektor f kann insgesamt geschrieben werden als: f (n) = N −1 X λu · bu (n) = u=0 N −1 X u=0 2π λu · exp iun N N −1 1 X 2π mit λu = hf, bu i = f (n) · exp −iun N N n=0 Setzt man F (u) := λu und zieht den Faktor aus Tönnies05 [5, S. 72]. F (u) = N −1 X n=0 1 N aus dem Skalarprodukt, erhält man die Formeln N −1 2π 1 X 2π f (n) · exp −iun und f (n) = F (u) · exp iun N N N (2.4) u=0 Die Funktion F (u) heißt Fouriertransformierte der Funktion f (n). Die Werte von F (u) sind in der Regel echte komplexe Zahlen. Auf die Eigenschaften der Fouriertransformierten bezüglich der Ortsfunktion f (n) wird noch eingegangen. 2.2.3 Bezug zur Fourierreihe In Gleichung 2.4 wird die Funktion f (n) aus Produkten zweier komplexer Zahlen F (u) und 2π exp iun N zusammengesetzt. Sie wird deshalb auch Synthesegleichung oder inverse Fouriertransformation genannt. Über die Analysegleichung werden die komplexen Koeffizienten F (u) ermittelt. Die einzelnen Produkte, die f zusammensetzen, sind also von der Form: F (u) · eix = Aeiφ eix = Aei(x+φ) = A [cos(x + φ) + i sin(x + φ)] (vgl. Tönnies05 [5, S. 72]) Die erste Gemeinsamkeit mit der Fourierreihe besteht darin, dass die Funktion f (n) aus Schwingungen zusammengesetzt wird, wobei Amplitude A und Phase φ elegant in einer komplexen Zahl F (u) kodiert sind. Der Imaginärteil der Schwingung darf dabei nicht stören. Während bei der Fourierreihe die negativen komplexen Koeffizienten c−n die konjugiert Komplexen der positiven waren, liegt das Symmetriezentrum jetzt bei N/2. Es gilt nämlich: 2π 2π 2π 2π exp −i(N − u)n = exp [−in2π] · exp iun = 1 · exp iun = exp −iun (2.5) N N N N Damit ist auch F (N − u) = F (u). Jede komplexe Welle hat daher ein konjugiert komplexes Pendant: F (u) · e−ix = Ae−i(x+φ) = A [cos(x + φ) − i sin(x + φ)] 6 2 Die Fouriertransformation Die imaginären Komponenten verschwinden also bei Addition des konjugierten Gegenstücks und mit Hilfe der Additionstheoreme erhält man folgende Darstellung für die einzelnen Schwingungen: 2A cos(x + φ) = a · cos(x) + b · sin(x) Hieraus wird der enge Zusammenhang zwischen der diskreten Fouriertransformation und der Fourierreihenentwicklung klar. Wegen dem diskreten und endlichen Definitionsbereich werden die Integrale aus Gleichung 2.2 zu Summen und die Summationsgrenzen endlich. 2.2.4 Die zweidimensionale Fouriertransformation Die Vereinfachung, dass die Zeilen der Helligkeitsmatrix in einen einzigen Vektor geschrieben werden, soll jetzt aufgehoben werden. Schöner wäre es, für die transformierte Funktion F (u) auch eine zweidimensionale Darstellung F (u, v) zu erhalten. Abbildung 2.2: Beschreibung einer zweidimensionale Welle durch die Wellenlänge λ, Wellenzahlvektor ~k und Phase φ. (vgl. Jähne02 [3, S. 42]) Dazu geht man für die Basisvektoren zu zweidimensionalen Wellen der Form A cos(~k~x + φ) über (Abb. 2.2). Der Vektor ~k = (k1 , k2 ) heißt Wellenzahlvektor und gibt die Richtung der Welle an. Sein Betrag entspricht der Frequenz der Welle. (vgl. Jähne02 [3, S. 42]) 2πv Mit dem Wellenzahlvektor ~k = 2πu lauten die Basisvektoren für die zweidimensionale M N Fouriertransformation: h um vn i m m 2πu 2πv 2πu 2πv bu,v (n, m) = cos + · + i sin · = exp i2π M N M N n n M N Als Formeln für die diskrete zweidimensionale Fouriertransformation ergeben sich für Hin- und Rücktransformation: F (u, v) = M −1 N −1 X X h um vn i f (m, n) exp −i2π + M N m=0 n=0 M −1 N −1 X X 1 f (m, n) = MN (2.6) h F (u, v) exp i2π um vn i + M N u=0 v=0 (vgl. Tönnies05 [5, S. 74]) 7 2 Die Fouriertransformation 2.3 Eigenschaften der Fouriertransformation 2.3.1 Allgemeine Eigenschaften Im Folgenden werden einige wichtige Eigenschaften der Fouriertransformation genannt. Viele wurden bereits im Zusammenhang mit der Umrechnungsformel 2.3 für die FourierreihenKoeffizienten deutlich. • Periodizität: Wegen der Periodizität der Einheitswurzeln gilt: F (u, v) = F (u + kM, v + lN ). • Symmetrie: F (−u, −v) = F (u, v) • Faltung:[f ∗ g] ⇐⇒ [F · G] • f gerade ⇐⇒ F gerade • f ungerade ⇐⇒ F ungerade • f reell und gerade ⇐⇒ F reell und gerade • f reell und ungerade ⇐⇒ F imaginär und ungerade (vgl. Jähne02 [3, S. 50]) Insbesondere ist das Amplitudenspektrum, also |F (u, v)| für reelle Funktionen f gerade. Zur Definition von geraden und ungeraden Funktionen F (u, v) werden negative Indizes −u, −v benötigt. Das ist jedoch kein Problem, weil wegen der Periodizität F (−u, −v) = F (M − u, N − v) gilt und so zu der bereits in Formel 2.5 festgestellten Symmetrie führt. (vgl. Jähne02 [3, S. 51]) In Beispielbildern von Fouriertransformationen befindet sich der Ursprung (0, 0) deshalb oft in der Mitte des Bildes. Die Symmetrieeigenschaft ist von großem Nutzen, weil nur die Hälfte aller Werte berechnet werden muss. Sie ist andererseits auch nicht erstaunlich, da komplexe Zahlen die Information von zwei reellen Zahlen enthalten (vgl. Tönnies05 [5, S. 76]) und damit ein fouriertransformiertes Bild gleich viel Speicherplatz wie sein Original benötigt. 2.3.2 Frequenz und Richtung Wie bereits erwähnt, zerlegt die zweidimensionale Fouriertransformation ein Bild in zweidimensionale Wellen. Sie berechnet komplexe Zahlen F (u, v), wobei der Vektor (u, v) die Richtung der zugehörigen Welle im Ortsraum angibt und der Betrag des Vektors ihrer Frequenz entspricht. Abbildung 2.3 zeigt die Fouriertransformation eines einfachen Streifenbildes. Das Maximum in der linken Hälfte des Amplitudenspektrums ist der Betrag einer komplexen Zahl F (u, v). Der Vektor vom Ursprung (0, 0) in der Bildmitte zum Maximum (u, v) gibt die Richtung der Welle an, die das periodische Streifenmuster erzeugt. Das Maximum in der rechten Hälfte stammt vom konjugiert komplexen Wert |F (−u, −v)| = |F (u, v)|. Es ist einleuchtend, dass eine Rotation im Ortsbereich zur gleichen Rotation des Amplitudenspektrums führt. (vgl. Tönnies05 [5, S. 83]) 8 2 Die Fouriertransformation (a) einfaches Bild mit diagonalen Streifen (b) Fouriertransformation des Bildes (Amplitudenspektrum) Abbildung 2.3: Der Vektor von der Mitte des Amplitudenspektrums zum linken Maximum gibt die Richtung der Welle an 2.3.3 Amplitude und Phase Komplexe Zahlen F(u,v) können mit der Euler-Formel auch folgendermaßen geschrieben werden: F (u, v) = |F (u, v)| · eiφ . Der Winkel φ heißt Phase und berechnet sich über den inversen Tangens vom Verhältnis des Imaginärteils zum Realteil. Die Amplitude |F (u, v)| gibt die Intensität der durch die Welle repräsentierten Grauwertschwankung an. Würden vor der Rücktransformation z.B. die Beträge |F (u, v)| halbiert werden, wäre das Ergebnis ein halb so helles Bild. (vgl. Tönnies05 [5, S. 79]) Die Position der Welle ist über die Phase bestimmt. Eine Translation im Ortsraum führt deshalb zu einer Veränderung der Phasen, wohingegen die Amplituden unberührt bleiben. Weil komplexe Zahlen schwer darzustellen sind, wird die Fouriertransformation eines Bildes getrennt als Amplitudenspektrum und Phasenspektrum gezeigt. Oft begnügt man sich auch mit dem Amplitudenspektrum. Für die Rücktransformation des Bildes muss sowohl Amplituden- und Phaseninformation vorhanden sein. Es stellt sich noch die Frage, welche Information dominiert, also einen größeren Einfluss bei der Rücktransformation hat. Dazu macht Jähne [3] einen interessanten Versuch. Vor der Rücktransformation zweier Bilder werden Amplituden- und Phaseninformation vertauscht (Abb. 2.4). Die resultierenden Bilder verraten, dass die Phaseninformation dominiert. Die Bilder nehmen jeweils die Struktur des Bildes an von dem die Phaseninformation stammt. 2.3.4 Mittelwert In der Fouriertransformierten des Streifenbildes (Abb. 2.3) befindet sich noch ein drittes Maximum in der Bildmitte bzw. im Ursprung (0, 0). Es kann als mittlerer Grauwertanteil des 9 2 Die Fouriertransformation Abbildung 2.4: Bedeutung von Amplituden- und Phaseninformation für die Rücktransformation. Bild c setzt sich aus der Amplitudeninformation von Bild a und Phase von Bild b zusammen. Bild d wird aus Amplitude von b und Phase von a zusammengesetzt. (vgl. Jähne02 [3, S. 58]) Bildes aufgefasst werden. Ähnlich dem Gleichanteil der Fourierreihe wird der Wert F (0, 0) als DC-Komponente (vgl. Tönnies05 [5, S. 73]) bezeichnet und ist eine reelle Zahl. 2.3.5 Separabilität Mit der angegebenen Formel für die zweidimensionale Fouriertransformation 2.6 wäre der Aufwand zur Berechnung der Fouriertransformation eines Bildes mit N 2 Pixeln O(N 4 ). Die Basisvektoren der zweidimensionalen Fouriertransformation sind aber separabel: h um i h vn i h um vn i exp i2π + = exp i2π · exp i2π M N M N Im Falle eines quadratischen Bildes ist M = N und die Transformationsformel lautet mit Hilfe der Separabilitätseigenschaft: NX ! −1 N −1 1 X 2π 2π exp −i um f (m, n) exp −i vn (2.7) F (u, v) = 2 N N N m=0 n=0 (vgl. Tönnies05 [5, S. 76]) Die Fouriertransformation kann also auf zwei eindimensionale Transformationen (Spalten- und Zeilentransformation) zurückgeführt werden, wenn die Transformation in der Klammer in einem Feld H(m, v) zwischengespeichert wird. (vgl. Abmayr S. 94 [1]) Der Berechnungsaufwand sinkt auf O(2N 3 ) = O(N 3 ). (vgl. Tönnies05 [5, S. 76]) 10 2 Die Fouriertransformation 2.4 Die schnelle Fouriertransformation (FFT) Eine Möglichkeit, die Berechnung weiter zu beschleunigen, bietet die schnelle Fouriertransformation. Die FFT (englisch: fast Fourier transform) ist ein Divide-and-Conquer Algorithmus und arbeitet deshalb am besten mit Bildern der Größe N ×N , wobei N eine Zweierpotenz ist. Die hier vorgestellte Variante ist den Büchern Tönnies05 [5] und Gonzales92 [2] entnommen. Aufgrund der Separierbarkeit der Fouriertransformation genügt es den Algorithmus für den eindimensionalen Fall zu definieren. Die eindimensionale DFT lautet unter Zuhilfenahme der Definition der N-ten Einheitswurzeln wN aus Abschnitt 2.2.2: F (u) = N −1 1 X (un) f (n)wN N n=0 Da N eine Zweierpotenz ist, kann die Transformation mit der Substitution K := N/2 in zwei halb so lange Summen aufgeteilt werden: ! K−1 K−1 1 1 X 1 X (2un) u(2n+1) F (u) = f (2n)w2K + f (2n + 1)w2K 2 K K n=0 n=0 (2un) Weil sich die 2 aus Zähler und Nenner kürzen lässt, gilt w2K 1 F (u) = 2 K−1 K−1 1 X 1 X (un) (un) (u) f (2n)wK + f (2n + 1)wK w2K K K n=0 (un) = wK und es folgt: ! n=0 Nennt man die Transformation der geraden Indizes Feven (u) und die der ungeraden Fodd (u) erhält man folgende Darstellung: F (u) = 1 (u) Feven (u) + Fodd (u)w2K 2 Das Ziel ist es aber, die Fouriertransformation in zwei halb so lange Transformationen aufzuteilen. Wegen der Periodizitätseigenschaft gilt zusätzlich: (u+K) wK (u) = wK (u+K) und w2K (u) = −w2K (vgl. Gonzales92 [2, S. 121]) Um die Werte für u = K, . . . , N − 1 zu berechnen kann man also die von u = 0, . . . , K − 1 benutzen. 1 1 (u+K) (u) Feven (u + K) + Fodd (u + K)w2K = Feven (u) − Fodd (u)w2K F (u + K) = 2 2 Die DFT wurde in zwei Transformationen der Länge N/2, eine für gerade und eine für ungerade Indizes n, aufgeteilt. Insgesamt ergibt sich für die schnelle Fouriertransformation der Länge N ein Aufwand von O(N log N ) (vgl. Jähne02 [3, S. 69]). Wird die zweidimensionale DFT zuerst auf allen Spalten und anschließend auf den Zeilen ausgeführt (siehe Formel 2.7), kann die Komplexität mit der FFT von O(N 3 ) auf O(2N 2 log N ) = O(N 2 log N ) gesenkt werden. 11 2 Die Fouriertransformation 2.5 Anwendungen der Fouriertransformation 2.5.1 Faltung Es wurde bereits darauf hingewiesen, dass sich die wichtige Faltungsoperation zum Filtern von Bildern im Ortsbereich, mit Hilfe der Fouriertransformation viel leichter durchführen lässt. Die eindimensionale Faltung zweier Funktionen f und g ist definiert als: [f ∗ g] (n) = ∞ X f (k)g(n − k). k=−∞ Es gilt folgende Beziehung: FT([f ∗ g] (n)) = F (u) · G(u) Eine Faltung im Ortsbereich entspricht also einer Multiplikation im Frequenzbereich. Diese wichtige Eigenschaft gilt auch für mehrdimensionale Funktionen: FT([f (m, n) ∗ g(m, n)] (n)) = F (u, v) · G(u, v) (2.8) Anschaulich bedeutet eine Faltung die Verschiebung einer gespiegelten Filtermaske über das Bild. Folglich ergibt sich ein Problem, wenn die Faltungsmaske über den Rand des Bildes hinausreicht. Keine gute Lösung ist die zyklische Faltung, bei der das Bild an den Rändern periodisch wiederholt wird. Streng genommen entspricht nur die zyklische Faltung einer Multiplikation im Fourierraum. (vgl. Jähne02 [3, S. 110]) Nimmt man an, dass die Faltungsmaske außerhalb eines Kernbereichs gleich null ist und das Bild einen schwarzen Rand mit dem Radius des Faltungskerns hat, wird das Resultat der Faltung ebenfalls einen schwarzen Trauerrand haben. (vgl. Tönnies05 [5, S. 84]) Eine dritte Möglichkeit besteht darin, das Bild im Randbereich einfach unverändert zu lassen, weil die Bildfunktion nicht über den Bildrand hinausgeht und deshalb dort die Faltungsoperation nicht definiert ist. Jedoch liefert keine der drei diskutierten Methoden ein optimales Faltungergebnis nahe dem Bildrand. (vgl. Jähne02 [3, S. 110]) Trotz des Aufwandes für Hin- und Rücktransformation kann die FFT den Faltungsprozess erheblich beschleunigen. Der Aufwand für beide Transformationen und Multiplikation im Frequenzbereich beträgt: O(2N 2 log N + N 2 ) = O(N 2 log N ) Verglichen mit dem Aufwand der Faltung im Ortsbereich mit einem Faltungskern der Größe K × K von O(K 2 · N 2 ) bringt die Fouriertransformation in den meisten Fällen (log N < K 2 ) eine Performanzsteigerung mit sich. (vgl. Tönnies05 [5, S. 85]) 12 2 Die Fouriertransformation 2.5.2 Korrelation Eine mit der Faltung verwandte Operation ist die Korrelation, die dazu dient Ähnlichkeiten zwischen Bildern festzustellen. Ihr liegt die Überlegung zugrunde, dass sich Grauwertschwankungen ähnlicher Bilder, also Abweichungen vom Mittelwert, gleich verhalten. Die folgenden Definitionen und Formeln sind hauptsächlich dem Buch Tönnies05 [5] entnommen. Zunächst wird die Kovarianz zwischen zwei Bildern f und g folgendermaßen definiert: σf,g N −1 M −1 1 X X (f (m, n) − f (m, n))(g(m, n) − g(m, n)) = MN n=0 m=0 Weicht f vom Mittelwert f an den gleichen Stellen und mit dem selben Vorzeichen wie g vom Mittelwert g ab, wird die Kovarianz sehr hoch sein. Ist die Kovarianz vom Betrag her niedrig, heben sich die Grauwertschwankungen auf und es besteht folglich wenig Ähnlichkeit. Ein invertiertes Bild hat mit seinem Original eine hohe negative Kovarianz. Um festzustellen ob ein bestimmtes Muster g in einem Bild f enthalten ist, wird das Muster g mit einem Verschiebevektor (m, n) über das Bild verschoben und die Kovarianz für alle Werte (m, n) berechnet. (vgl. Tönnies05 [5, S. 87]) Die Funktion [f ◦ g](m, n) = M −1 N −1 X X (f (i + m, j + n) − f )(g(i, j) − g) i=0 j=0 wird Kreuzkorrelation genannt. Trifft man die Übereinkunft, dass der Mittelwert g null ist, vereinfacht sich die Funktion zu: [f ◦ g](m, n) = M −1 N −1 X X f (i + m, j + n)g(i, j) i=0 j=0 Das Ergebnis sieht der Faltung bereits sehr ähnlich. Spiegelt man f zusätzlich, ergibt sich mit f 0 (i, j) := f (−i, −j): 0 [f ◦ g](m, n) = M −1 N −1 X X f (−i − m, −j − n)g(i, j) = [f ∗ g](−m, −n) i=0 j=0 Die Korrelation zwischen f und g entspricht also einer Faltung des Spiegelbildes von f mit der Funktion g. Zusammen erhält man mit der Symmetrie- und Faltungseigenschaft aus Abschnitt 2.3.1 der Fouriertransformation die Formel aus Tönnies05 [5]: FT([f ◦ g](m, n)) = FT([f (−i, −j) ∗ g(i, j)](−m, −n)) = F (u, v) · G(u, v) = F (u, v) · G(u, v) Die Korrelation im Ortsraum korrespondiert analog zur Faltung wieder mit einer Multiplikation im Frequenzraum, wobei die Fouriertransformierte des Musters g komplex konjugiert wird. 13 3 Fazit und Ausblick Neben der Fouriertransformation existieren noch weitere orthogonale Funktionstransformationen. Die Wavelet-Transformation zerlegt ein Bild in sogenannte Wavelets (engl. “kleine Wellen”), die zeitlich begrenzt sind. Damit lässt sich im Gegensatz zur Fouriertransformation auch eine Aussage über das zeitliche Auftreten einzelner Wellen machen. Die diskrete Kosinustransformation bedient sich Kosinuswellen als Basisfunktionen, deren Frequenzen auch halbzahlige Vielfache der Grundfrequenz (2π/N ) sein können, womit der Frequenzraum im Unterschied zur Fouriertransformation reell ist. Anwendung findet die Waveletund diskrete Kosinustransformation vor allem in der Bildkompression. Erst seit schnelle Algorithmen wie die FFT existieren, ist die Berechnung der Fouriertransformation überhaupt erst interessant geworden. 14 4 Literaturverzeichnis [1] Abmayr, Wolfgang: Einführung in die digitale Bildverarbeitung. Teubner, 1994. [2] Gonzales, Rafael C.: Digital image processing. Addison-Wesley, 1992. [3] Jähne, Bernd: Digitale Bildverarbeitung. Springer, fünfte Auflage, 2002. [4] Kurt Meyberg, Peter Vachenauer: Höhere Mathematik 2. Springer, 1999. [5] Tönnies, Klaus D.: Grundlagen der Bildverarbeitung. Pearson Studium, 2005. [6] Wikipedia: Diskrete Fourier-Transformation — Wikipedia, Die freie Enzyklopädie, 2006. [Online; Stand 12. Dezember 2006]. [7] Wikipedia: Fourierreihe — Wikipedia, Die freie Enzyklopädie, 2006. [Online; Stand 30. Dezember 2006]. 15