25
1 Versuch: Bildabtastung 1 Einführung Wird bei der Digitalisierung analoger Signale das Abtasttheorem verletzt, treten Aliasing- Effekte auf. Während man die Bandbegrenzung auf die halbe Abtastfrequenz durch Filterung von Audio-Signalen oft gewährleistet, wird dieses Problem bei der Digitalisierung von Bildern kaum beachtet. Aber auch bei vielen Bildbearbeitungsprogrammen treten diese Effekte beim Vergrößern oder Verkleinern von Bildern mit feinen, regelmäßigen Strukturen auf. Die Frage, mit der sich dieser Versuch unter anderem beschäftigt, lautet: Wie entstehen diese, als Bildstörung empfundenen Effekte und welche Maßnahmen können zur Unterdrückung bzw. Minderung angewendet werden? Zum besseren Verständnis werden die Grundlagen im Theorieteil auf eindimensionale Signale angewandt, und auch der praktische Versuchsteil besteht zum Teil aus Operationen im eindimensionalen Bereich mit Hilfe des Mathematik-Programmpakets MATLAB. Für die Arbeitsschritte, die auf eine abzufotografierende Bildvorlage bezogen sind, ist jedoch eine Erweiterung ins Zweidimensionale nötig. Betrachtet werden in diesem Versuch, Abtastung, Interpolation und Antialiasing-Filterung. Zusätzlich werden die Themen Farbunterabtastung und Quantisierung behandelt. 2 Theoretische Grundlagen Dieses Kapitel gibt eine kurze Übersicht über die wichtigsten Begriffe und die für den Laborversuch relevanten Grundlagen, mit deren Hilfe eine erfolgreiche Versuchsdurchführung ermöglicht wird. 2.1 Kurzeinführung in MATLAB MATLAB (Abkürzung für MATrix LABoratory) ist ein sehr umfangreiches Programm- system, mit dem unter anderem Aufgaben der digitalen Signalverarbeitung gelöst werden können. Es integriert Berechnungen, Visualisierung und Programmierung in eine einfach zu bedienende Programmierumgebung, wobei Probleme und Lösungen mittels gängiger mathematischer Formeln ausgedrückt wird. Typische Anwendungen sind: • Mathematische Berechnungen • Entwicklung von Algorithmen • Modellierung und Simulation • Analyse, und Visualisierung von Daten • Wissenschaftliche und technische Graphen • Entwicklung von Applikation, die in ein GUI (Graphical User Interface) eingebettet sind. Das Grundelement von MATLAB ist ein Array, das keine Dimensionsdeklaration braucht. Dies erlaubt es insbesondere Aufgaben zu lösen, die sich mit Hilfe von Vektoren bzw. Matrizen formulieren lassen.

Versuch: Bildabtastung - nt.eit.uni-kl.dent.eit.uni-kl.de/fileadmin/lehre/nt-lab/anleitung/Bildabtastung.pdf · 3 die Zahl 2 im Kommandofenster. >> x‘ erzeugt die zu x transponierte

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

1

Versuch: Bildabtastung

1 Einführung

Wird bei der Digitalisierung analoger Signale das Abtasttheorem verletzt, treten Aliasing-Effekte auf. Während man die Bandbegrenzung auf die halbe Abtastfrequenz durch Filterungvon Audio-Signalen oft gewährleistet, wird dieses Problem bei der Digitalisierung vonBildern kaum beachtet. Aber auch bei vielen Bildbearbeitungsprogrammen treten dieseEffekte beim Vergrößern oder Verkleinern von Bildern mit feinen, regelmäßigen Strukturenauf. Die Frage, mit der sich dieser Versuch unter anderem beschäftigt, lautet: Wie entstehendiese, als Bildstörung empfundenen Effekte und welche Maßnahmen können zurUnterdrückung bzw. Minderung angewendet werden?

Zum besseren Verständnis werden die Grundlagen im Theorieteil auf eindimensionale Signaleangewandt, und auch der praktische Versuchsteil besteht zum Teil aus Operationen imeindimensionalen Bereich mit Hilfe des Mathematik-Programmpakets MATLAB. Für dieArbeitsschritte, die auf eine abzufotografierende Bildvorlage bezogen sind, ist jedoch eineErweiterung ins Zweidimensionale nötig. Betrachtet werden in diesem Versuch, Abtastung,Interpolation und Antialiasing-Filterung. Zusätzlich werden die Themen Farbunterabtastungund Quantisierung behandelt.

2 Theoretische Grundlagen

Dieses Kapitel gibt eine kurze Übersicht über die wichtigsten Begriffe und die für denLaborversuch relevanten Grundlagen, mit deren Hilfe eine erfolgreicheVersuchsdurchführung ermöglicht wird.

2.1 Kurzeinführung in MATLAB

MATLAB (Abkürzung für MATrix LABoratory) ist ein sehr umfangreiches Programm-system, mit dem unter anderem Aufgaben der digitalen Signalverarbeitung gelöst werdenkönnen. Es integriert Berechnungen, Visualisierung und Programmierung in eine einfach zubedienende Programmierumgebung, wobei Probleme und Lösungen mittels gängigermathematischer Formeln ausgedrückt wird. Typische Anwendungen sind:• Mathematische Berechnungen• Entwicklung von Algorithmen• Modellierung und Simulation• Analyse, und Visualisierung von Daten• Wissenschaftliche und technische Graphen• Entwicklung von Applikation, die in ein GUI (Graphical User Interface) eingebettet sind.

Das Grundelement von MATLAB ist ein Array, das keine Dimensionsdeklaration braucht.Dies erlaubt es insbesondere Aufgaben zu lösen, die sich mit Hilfe von Vektoren bzw.Matrizen formulieren lassen.

2

Nach dem Aufruf von MATLAB erscheint der MATLAB Desktop (Abb. 2.1), der 3wesentliche Fenster beinhaltet:• Command Window (rechts), um die Befehle direkt einzugeben.• Command History (links unten), um die bereits eingegebenen Befehle anzuzeigen• Workspace (links oben), um die geladenen Variablen zu sehenAußerdem ist es wichtig zu wissen in welchem Ordner man sich gerade befindet (obenrechts).

Abb. 2.1: MATLAB-Oberfläche der OS X Version

Vom MATLAB-Kommandofenster aus kann man nach dem Befehlsprompt >> sämtlicheMATLAB-Befehle eingeben und auch Grafiken ausgeben. Es lassen sich auch sogenannteScripts erstellen, wozu der MATLAB-Editor/Debugger vom Kommandofenster ausaufgerufen (mit New File oder Open File) und in diesen eine MATLAB-Befehlssequenzeingegeben wird. Nach dem Speichern unter einem frei wählbaren Namen mit derErweiterung .m kann die Befehlssequenz unter diesem Namen aufrufen.

Elementare MATLAB-BefehleDie vier Grundrechenarten und die Potenzfunktion werden in MATLAB durch die Zeichen

+, - , * , / , ^

repräsentiert. MATLAB arbeitet mit Vektoren, in denen in diesem Versuch Abtastwerte vonSignalverläufen gespeichert werden. Beispielsweise werden mit

>> x = (1:10)*2;

die geraden Zahlen zwischen 2 und 20 im Zeilenvektor x gespeichert. Das Semikolonunterdrückt die Ausgabe von Werten ins MATLAB-Kommandofenster. Der Vektor lässt sichanschließend durch die Eingabe von

>> x

ausgeben. Der erste Wert eines Vektors wird stets mit 1 indiziert. Beispielsweise erscheintnach dem vorletzten Befehl und

>> x(1)

3

die Zahl 2 im Kommandofenster.

>> x‘

erzeugt die zu x transponierte und ggf. konjugiert komplexe Matrix, d.h. wenn es sich bei xum ein Zeilenvektor handelt, dann ist x‘ ein Spaltenvektor.

Auf Vektoren lassen sich die Standardfunktionen anwenden. Beispielsweise liefert dieBefehlsfolge

>> x = (0:1000)/1000*2*pi;>> y = sin(x);

1001 äquidistante Abtastwerte einer vollen Periode der Sinusfunktion im Vektor y. Wenn Siezwei Vektoren x und y addieren oder subtrahieren, müssen beide die gleiche Länge haben.Ansonsten gibt es eine Fehlermeldung. Der MATLAB-Befehle

>> y = x(n1:n2);

bildet aus dem n1-ten bis n2-ten Element des Vektors x einen neuen Vektor y,

>> length(y)

liefert die Länge des Vektors y.

>> z = x.*y;

bildet aus der elementweisen Multiplikation der Zeilenvektoren x und y einen neuen Vektorz. Ohne den Punkt vor dem Multiplikationszeichen wird eine Matrix-Multiplikationausgeführt, was in diesem Fall wegen falscher Dimensionen nicht definiert ist und zu einerFehlermeldung führt. Demnach erhält man das Skalarprodukt s durch

>> s = x*y‘;

und eine Matrix Z durch

>> Z = x‘*y;

Beispielsweise werden Grauwert-Bilder in 2-dimensionalen Matrizen gespeichert, Farbbilderin 3-dimensionalen.

Den Logarithmus zur Basis 10 liefert

>> y = log10(x);

und die DFT über den Vektor x wird mit

>> X == fft(x);

gebildet. Die DFT-Länge ist gleich der Länge des Vektors x. Man beachte, dass derErgebnisvektor X im allgemeinen aus komplexen Werten besteht.

>> y= abs(x);

bildet die Absolutbeträge des Vektors x, der reelle oder komplexe Werte enthalten kann.

>> plot(x,y);

bildet aus den Werten des Vektors x (für die x-Achse) und y (für die y-Achse) eine Grafikmit einer Kurve. Dabei wird der n-te Wert des Vektors y dem n-ten Wert des Vektors xzugeordnet. x und y müssen die gleiche Länge haben.

>> grid;

4

zeichnet ein Gitter in die Grafik, was das Ablesen von Werten erleichtert.

>> title(’Titel’);

gibt der Grafik einen Titel.

>> xlabel(’Bezeichnung’);

fügt eine Beschriftung an die x-Achse an.

>> ylabel(’Bezeichnung’);

fügt eine Beschriftung an die y-Achse an.

>> axis([xmin xmax ymin ymax]);

dient zur Ausgabe eines Ausschnitts aus einer Grafik. Dabei sind Minimal- und Maximal-werte für die x- und y-Achsen in der aufgeführten Reihenfolge anzugeben.

>> int2str(n);

wandelt eine Zahl n in einen Text-String. Dieser Befehl kann verwendet werden, um Stringszu erzeugen, mit denen z.B. Grafiken beschriftet werden.

Beispiel:Ein Programm berechnet Kurven, die als Grafik ausgegeben werden sollen. Angenommen,während des Programmflusses zur Berechnung der 5. Kurve wurde der Variablen n der Wert5 zugewiesen. Weiter wurde mit dem Plot-Befehl eine Grafik der 5. Kurve erstellt.Anschließend kann dann mit dem Befehl title([ int2str(n),’. Kurve’]); derGrafik der Titel „5. Kurve“ gegeben werden. Zusammengesetzte Strings sind also in eckigeKlammern einzuschließen.

>> pause;

unterbricht den Programmfluss und wartet auf einen Tastendruck.

>> i= input(’Text’);

gibt einen Text im Kommandofenster aus und wartet auf die Eingabe einer Zahl, die mit>CR< abgeschlossen werden muss und der Variablen i zugeordnet wird.

Man beachte, dass MATLAB immer in einem aktuellen Ordner arbeitet. Mit

>> pwd;

läst sich der Name des aktuellen Ordners abfragen und mit

>> cd Name;

kann man in den Ordner Name wechseln.

>> dir

zeigt den Inhalt des aktuellen Ordners im MATLAB-Kommandofenster an.

Lesen und schreiben von BilddatenMATLAB kennt folgende Bildformate: .jpeg, .tiff, .bmp, .png, .hdf, .pcx, .xwd. Um ein Bildin eine Matrix img einlesen zu können, benötigt man den imread Befehl, zum Schreibenden imwrite Befehl.

5

>> img = imread(’name.typ’);>> imwrite(name,’name.typ’);

Graphische Darstellung von BilddatenDer Befehl image zeichnet die Bilddaten.

>> image(img);>> colormap(gray(2));>> axis image;

Der Befehl axis image bewirkt, dass nicht das ganze Bild mit der Zeichnung ausgefüllt wird,sondern dass das Bild einheitlich reskaliert und in die Zeichnung eingefügt wird. Diecolormap Funktion legt fest, welche Colormap verwendet wird (d.h. welche Farben im Bildvorkommen). Im obigen Fall hat man ein Grauwertbild mit nur zwei möglichen Werten: 0und 1 (also ein binäres Bild). Daher muss die Colormap auf den Wert gray(2) gesetztwerden. Für normale Grauwertbilder wird der Wert auf gray(256) gesetzt.

Bildformate in MATLABMATLAB liest Bilder im uint8 Format, ein Integer Format mit geringer Genauigkeit. DasProgramm kennt auch die Formate uint16 und double. Viele mathematische Operationen sindnur für das double Format definiert, also muss man die Bilddaten in dieses Formatumwandeln, um Operatoren wie +, -, * benutzen zu können.

>>img= double(img) + 1;

Dieser Befehl wandelt uint8-Daten in double -Daten um. Der Offset 1 muss immer dannaddiert werden, wenn man uint8 oder uint16 Daten in double Daten konvertiert. Somit mussman 1 abziehen, wenn man double Daten in integer Daten umwandelt.

>>img = unit8(img) - 1;

RGB-BilderDie Angabe, um welchen Farbanteil des RGB-Bildes es sich handelt, wird als dritteDimension der Pixel-Matrix img gespeichert.

R: >>img(i,j,1);G: >>img(i,j,2);B: >>img(i,j,3);

Diese Grundlagen können in ausführlicher Form in (siehe unten stehender Link) nachgelesenwerden.

Links zu MATLAB-Tutorials:http://nt.eit.uni-kl.de/matlab-aufgaben/kurzanleitung.pdfhttp://nt.eit.uni-kl.de/matlab-aufgaben/tutor.ziphttp://lmb.informatik.uni-freiburg.de/lectures/bildverarbeitung/Exercise07/Matlab-Einfuehrung.pdf

6

2.2 Das Abtasttheorem für bandbegrenzte Signale

Die Abtastung überführt ein analoges Signal in ein zeitdiskretes wertkontinuierliches Signal.Sie liefert also nur die zeitdiskreten Abtastwerte ohne Flächen. Betrachtet wird das SpektrumS(f) (Abb. 2.2a) eines Signals s(t) mit dem periodisch fortgesetzten Fourier-Spektrum Sp(f)(Abb. 2.2b). Das Signal ist bandbegrenzt auf die Bandbreite fg , wenn S(f) = 0 für |f| > fg gilt.

Abb. 2.2: a) Spektrum eines bandbegrenzten Signals, b) periodisch fortgesetztes Spektrum

Durch periodische Fortsetzung mit Fp ≥ 2 ·f g ergibt sich die periodische SpektralfunktionSp(f). Zwischen Sp(f) und S(f) gilt der Zusammenhang:

(2.1)

Die periodische Funktion Sp(f) lässt sich nun wiederum als Fourier-Reihe darstellen. Dabeigelten folgende Beziehungen:

(2.2)

. (2.3)

Über die Formel des Fourier-Rückintegrals

(2.4)

ergibt sich für die Koeffizienten ck folgende Beziehung:

. . (2.5)

Die Fourier-Koeffizienten des periodisch fortgesetzten, bandbegrenzten Spektrums sind alsogleich den mit 1/Fp multiplizierten Abtastwerten der Zeitfunktion s(t) an den Stellen t= -k/Fp.Dies soll Abbildung 2.3 verdeutlichen.

7

Abb. 2.3: Zur Erläuterung des Abtasttheorems

Aus den Abtastwerten von s(t) erhält man über (2.5) die Koeffizienten ck . Diese bestimmenüber (2.3) das periodisch fortgesetzte Fourier-Spektrum Sp(f). Über (2.1) ist somit auch dasFourier-Spektrum S(f) gegeben. Die Formel für das Fourier-Rückintegral (2.4) liefert uns diekomplette Zeitfunktion s(t).

Für das zeitliche Abtasttheorem lässt sich also zusammengefasst sagen:Bei bandbegrenzten Signalen s(t) der Grenzfrequenz fg bestimmen die zeitlichen Abtastwertes(k/Fp) mit k = 0, ± 1, +- 2, ... die komplette Zeitfunktion s(t), sofern Fp ≥ 2 ·f g. Für denzeitlichen Abtastabstand gilt:

. (2.6)

Das entsprechende Gegenstück dazu ist das spektrale Abtasttheorem für zeitbegrenzte Signalemit den zeitlichen Grenzen ±T.Die Abtastwerte S(kf0) bestimmen das gesamte Spektrum S(f), wenn gilt:

. (2.7)

Um die Spektralfunktion S(f) wiederzugewinnen, kann diese aus Sp(f) durch einen Tiefpassrekonstruiert werden. Der Tiefpass soll im Bereich |f| ≤ Fp/2 alle Spektralanteile ungedämpftdurchlassen und im Bereich |f| > fg = Fp /2 alle Spektralanteile sperren, siehe Abbildung 2.4.

Abb. 2.4: Rekonstruktion von S(f) mit einem Tiefpass

Das Abtasttheorem gilt sinngemäß auch bei der Abtastung von analogen 2-dimensionalenFunktionen, also von Bildern. Jedes abgetastete Bild besitzt neben dem Ortsbereich mit x-und y-Koordinaten auch einen Frequenzbereichsdarstellung mit einem sich periodischwiederholenden 2-dimensionalen Spektrum. Die Bildrekonstruktion mit einem 2-D Tiefpassist nur dann fehlerfrei möglich, wenn sich die am 2-D Frequenzgitter periodisch fortgesetzten2-D Spektren, die aus der Bildabtastung resultierenden, nicht überlappen.

2.3 Aliasing

Die bei der Abtastung nicht exakt bandbegrenzter Signale entstehenden Fehler werden alsAliasing bezeichnet. Signalanteile, die oberhalb der halben Abtastfrequenz liegen (inAbbildung 2.5 als Ausläufer bezeichnet), können z.B. als niederfrequente Komponenten, d. h.mit einer anderen Frequenz („Alias“), wiedergegeben werden. Der Anteil (Leistung,

8

Amplitude) dieser Fehlerkomponenten lässt sich durch eine Tiefpassfilterung mit einemsogenannten Anti-Aliasingfilter vor der Abtastung reduzieren. Mit steigender Filterordnung nwerden bei konstanter Grenzfrequenz hohe Signalfrequenzen stärker gedämpft (|G(f)| ~ 1/f n).

Abb. 2.5: Verlauf eines nicht bandbegrenzten Spektrums S(f) des Signals s(t)

Bei der Abtastung mit der Abtastfrequenz f0=2fg kommt es aufgrund der Ausläufer außerhalb± fg zur Überlappung der überlagerten, frequenzversetzten Spektren, wie man in Abbildung2.6 sieht.

Abb. 2.6: Überlagerung der frequenzverschobenen Spektren

Mit einem Rekonstruktionstiefpass lässt sich das Spektrum S’(f) herausfiltern. Dieses stimmtjedoch nicht mehr mit dem ursprünglichen Spektrum S(f) überein, denn

. (2.8)

Kommt es bei der 2-D Abtastung eines Bildes mit zu hohen Ortsfrequenzen (zu feineStrukturen) zu einer spektralen Überlappung, tritt auch hier Aliasing auf. Es kann sich inForm von Moiré-Bildfehlern, d.h. im Ursprungsbild nicht vorhandene Strukturen, bemerkbarmachen.

2.4 Faltung

Die Faltung wird durch das Operationssymbol (*) dargestellt und wird mit folgender Formel(2.9) berechnet:

. (2.9)

Abbildung 2.7 zeigt den Ablauf der Faltungsoperation:

9

Abb. 2.7: Zur Berechnung des Faltungsintegrals

Die Zeitfunktionen s1(t) und h(t) seien der Einfachheit halber als zeitbegrenzt vorausgesetzt.Zur Berechnung des Integrals mit der Integrationsvariablen τ werden die Funktionen s1(τ) undh(t-τ) über der τ-Achse aufgetragen. Für t=0 ergibt sich h(-τ) in zeitinverser Lage, als würdeman die Zeitachse im Ursprung falten. Mit wachsendem t wird die Impulsantwort nach rechtsverschoben. Für jede Position ist das Integral über das Produkt s1(τ)·h(t-τ) zu bilden, um denVerlauf von s2(t) zu gewinnen.

Entsprechend der 1-D Faltung existiert eine 2-D Faltung, die auch zur Filterung von Bilddatenverwendet werden kann. Hierbei kommt es jedoch zu einem wesentlich höherenRechenaufwand. Für den besonderen Fall, dass ein Filter separierbar ist, d.h. dass sich die 2-DFilterfunktion in zwei 1-D Filterfunktionen (horizontaler und vertikaler Anteil) faktorisierenlässt, kann dieser Rechenaufwand wesentlich vermindert werden, denn die Filterung erfolgtnun durch zwei 1-D Faltungsoperationen. Das folgende Beispiel mit den diskreten 1-DFilterkoeffizienten hx, hy und den 2-D Koeffizienten hxy verdeutlicht dies:

121

yh

= , 1 2 3 2 1xh = und1 2 3 2 12 4 6 4 21 2 3 2 1

yx y xh h h

= ⋅ = .

2.5 Diskrete Fourier-Transformation

Die Definition der diskreten Fourier-Transformation (DFT) erfolgt in Anlehnung an diekontinuierliche Fourier-Transformation

(2.10)

Die Zeitfunktion s(t) sei zeitbegrenzt und beschränkt:

. (2.11)

10

Abb. 2.8: Zur numerischen Berechnung des Fourier-Integrals

Zur Berechnung werden nun statt der kontinuierlichen Zeitfunktion s(t) nur N äquidistanteAbtastwerte s(tn) im Abstand ∆t = tn-1 – tn = tg/(N-1) verwendet. Durch die Verwendung derdiskreten Werte wird s(t) in Form der in Abbildung 2.8 dargestellten Treppenkurveapproximiert. Für diese Treppenkurve berechnet sich der Wert des Fourier-Integrals (2.11) ander festen Stelle f = fk zu:

. (2.12)

(2.12) bildet den Ansatzpunkt für die Definition der Diskreten Fourier-Transformation.

Die eigentliche Definition beruht auf zwei Vorgaben. Die erste Vorgabe betrifft den zeitlichenAbstand der Funktionswerte, welcher festgelegt wird durch:

. (2.13)

Die zweite Vorgabe betrifft die Werte der festen Frequenzen fk, für welche dieTransformation durchgeführt wird. Es werden N diskrete Frequenzen festgelegt:

. (2.14)

Mit (2.13) und (2.14) wird die DFT für die N Folgeglieder s(nT) wie folgt definiert:

DFT:

. (2.15)

Die zugehörige Umkehrformel wird als inverse Diskrete Fourier-Transformation (IDFT)bezeichnet.

IDFT:

. (2.16)

Mit ihr lassen sich aus den diskreten Spektralwerten S(k/nT) die diskreten Funktionswertes(nT) zurückgewinnen.

11

Wie bereits in Abschnitt 2.2 erwähnt, besitzt jedes Bild neben einer Orts- auch eineFrequenzbereichsdarstellung. Um 2-D Funktionen in den 2-D Frequenzbereich zutransformieren, kann die entsprechend der eindimensionalen DFT definierte 2-D DFTverwendet werden.

2.6 Besonderheiten der FFT in MATLAB

Nimmt man als Ausgangspunkt einen idealen Rechteck-Tiefpass im Frequenzbereich an, undtransformiert diesen mit Hilfe der IDFT, die in MATLAB als inversen Fast FourierTransformation (IFFT) ausgeführt wird, in den Zeitbereich, erhält man aus der reellenFunktion im Frequenzbereich wiederum eine reelle Funktion im Zeitbereich, sofern es sichbei der Rechteckfunktion um eine gerade, symmetrische Funktion handelt. Abbildung 2.9veranschaulicht diese Zusammenhänge.

Abb. 2.9 : Idealer Tiefpass im Frequenzbereich und zugehörige Impulsantwort im Zeitbereich

In MATLAB besteht die Rechteckfunktion lediglich aus einem Vektor, der bis zurGrenzfrequenz aus n Einsen und oberhalb der Grenzfrequenz aus Nullen besteht (Abb.2.10).Die Nummerierung der Indizes beginnt mit n=1, MATLAB kennt nur positive Indizes unddamit keine negativen Frequenzen.

Abb. 2.10: idealer Tiefpass im Frequenzbereich

12

Daraus ergibt sich folgendes Problem: Es handelt sich nun nicht mehr um ein symmetrischesSignal und die Anwendung der IFFT würde ein komplexes Signal im Zeitbereich ergeben.

Eine Möglichkeit das Problem zu lösen, wäre die Tiefpassfunktion vor der Transformationperiodisch fortzusetzen, also das Ende des Vektors mit Einsen aufzufüllen, wie dies inAbbildung 2.11 zu sehen ist. Dabei ist jedoch darauf zu achten, dass der Nullpunkt, der inMATLAB den Index n=1 trägt, ausgelassen werden muss. Es werden also nur die n-1 letztenStellen des Vektors auf den Wert 1 gesetzt. Dieses Verfahren müsste man ebenso bei derVerwendung der FFT anwenden.

Abb. 2.11: Periodische Fortsetzung der Rechteckfunktion

Achtung!Durch Rechenungenauigkeiten von MATLAB ergeben sich trotz dieser MaßnahmeImaginärteile in der Größenordung von 10-17. Diese können jedoch vernachlässigt werden undes reicht aus, den Realteil zu betrachten.

Alternativ zur periodischen Fortsetzung besteht die Möglichkeit dem Programm mitzuteilen,dass die Anwendung der IFFT symmetrisch erfolgen soll. Dies ist leider nur bei der IFFT,jedoch nicht bei der FFT möglich.

>> h = ifft(H,’symmetric’);

Abb. 2.12: Zeitbereichsdarstellung nach IFFT Abb. 2.13: Detailansicht der Zeitbereichsdarstellung

Der Verlauf wird, wie man in Abbildung 2.12 erkennt, automatisch vom Programmperiodisch fortgesetzt. Abbildung 2.13 zeigt eine Detailansicht der ersten 100 Samples beigleicher Amplitudenskalierung.

13

2.7 Quantisierung

m Rahmen der Analog-Digital-Umsetzung müssen Signale in Zahlenwerte (digitaleDarstellung) überführt werden, damit diese, beispielsweise von einem Signalprozessor,weiterverarbeitet werden können.Die zeitdiskreten Werte von Abtastsignalen können nur in Datenworte endlicher Wortlängeabgebildet werden. Das bedeutet: jeder Amplitudenwert kann nur mit einer endlichenGenauigkeit aufgelöst werden, die unmittelbar mit der Datenwortlänge verbunden ist. Derzulässige Amplitudenbereich wird in eine endliche Anzahl diskreter Amplitudenintervalleaufgeteilt. Diese Aufteilung bezeichnet man als Amplitudenquantisierung, die Differenz zumtatsächlichen Signalwert wird als Quantisierungsfehler bezeichnet.Abbildung 2.14 zeigt die Abtastung und Quantisierung eines Signals auf 3 Bit. Das erste Bitgibt das Vorzeichen an, die letzten beiden Bits spiegeln den Wert der Signalamplitude wieder.

Abb. 2.14: Abtastung und Quantisierung

2.8 Fensterfunktionen

Anwendung finden Fensterfunktionen beim Entwurf von digitalen Filtern mit endlicherImpulsantwortlänge (FIR-Filter). Dabei wird der gewünschte Frequenzgang des Filtersdefiniert und mittels inverser Fourier-Transformation (IFT) die ideale Impulsantwort imZeitbereich ermittelt. Das Ergebnis der IFT ist jedoch unendlich lang. Um ein Filter derendlichen Länge N zu erhalten, wird durch eine Fensterfunktion ein Ausschnitt derunendlichen Impulsantwort ausgewählt. Die Fensterfunktion beschreibt einenFunktionsverlauf, der die Gewichtung der einzelnen Abtastwerte festlegt. Dieser Vorgangentspricht einer Faltung des Frequenzgangs mit der Fourier-Transformierten derFensterfunktion. Es kommt also zu Abweichungen vom gewünschten Frequenzgang.

Der Effekt, der durch das Abschneiden der Impulsantwort (Rechteckfenster) auftritt, resultiertaus dem Gibb’schen Phänomen, das das typische Verhalten von Fourier-Reihen anSprungstellen bezeichnet. Entwickelt man eine Fourier-Reihe aus einer unstetigen Funktion,kommt es in der Umgebung der Sprungstellen zu Über- bzw. Unterschwingern. Mitwachsender Zahl N an Koeffizienten steigt die Frequenz der Überschwinger, während sich dieAbklingzeit reduziert. Die Amplitude der Überschwinger ändert sich dabei nicht. Abbildung2.15 zeigt das Gibb’sche Phänomen anhand einer Rechteckimpulsfolge für N =3, 9 und 99.

14

Abb. 2.15: Endliche Fourier-Reihe einer Rechteckimpulsfolge für N =3, N =9 und N =99

Durch Verwendung von Fensterfunktionen ohne Sprungstellen lässt sich das Gibb’schePhänomen vermeiden.

Beispiele für FensterfunktionenRechteck-Fenster:

(2.17)

Dreieck-Fenster:

(2.18)

Hann-Fenster:

(2.19)

Hamming-Fenster:

(2.20)

Blackman-Fenster:

(2.21)

Welche Fenster-Funktion gewählt wird hängt von den Anforderungen an das digitale Filterab. Allgemein lässt sich sagen, dass für eine geringere Welligkeit eine flachere Filterflanke inKauf genommen werden muss.

15

Die hier aufgeführten Fensterfunktionen in den 2-D Bereich umgesetzt und somit auch zurFensterung von 2-D Impulsantworten verwendet werden.

2.9 Interpolation

Von Interpolation spricht man, wenn anhand gegebener Stützstellen eines FunktionsverlaufsZwischenwerte ermittelt werden. Insofern handelt es sich bei der Rekonstruktion einesbandbegrenzten Signals aus äquidistanten Abtastwerten durch einen Tiefpass um eineInterpolation. Hier soll die Interpolation anhand eines abgetasteten Bildes betrachtet werden.

Bei der Interpolation handelt es sich dann um eine diskrete geometrische Operation. DaBilddaten oft nicht für die gewünschten Gitterpunkte sondern für Zwischenplätze vorliegen,ergibt sich die Notwendigkeit der Interpolation. Vorraussetzung dafür, dass aus dem diskretenBild das kontinuierliche Bild fehlerfrei rekonstruiert werden kann, ist die Einhaltung desAbtasttheorems. Das bedeutet, dass jede im Bild auftretende periodische Struktur mindestenszweimal pro „Wellenlänge“ abgetastet werden muss. Die maximale Wellenzahl k, die ohneFehler abgetastet werden kann, wird als Nyquist-Wellenzahl bezeichnet. Im Folgenden wirddie dimensionslose Wellenzahl verwendet, die auf die Nyquist-Wellenzahl normiert ist.

Ausgehend von dieser Tatsache kann ein allgemeines Verfahren für die Interpolationabgeleitet werden: Man rekonstruiert zunächst das kontinuierliche Bild und führt dann eineerneute Abtastung auf neuen Gitterpunkten durch. Das neue Gitter darf hierbei nicht weitersein als das alte, da sonst Aliasing-Effekte auftreten können. In diesem Falle müsste das Bildvorgefiltert werden, ehe es abgetastet werden kann.

Wie in Abschnitt 2.2 gezeigt wurde, kann die Rekonstruktion einer kontinuierlichen Funktionaus Abtastpunkten als Faltungsoperation (2.9) betrachtet werden, denn im Falle der idealenInterpolation ist die Interpolations-Übertragungsfunktion eine Rechteckfunktion, siehe Abb.2.4, und die Impulsantwort entspricht der unendlich ausgedehnten sinc-Funktion. Darausfolgt, dass eine ideale Rekonstruktion des kontinuierlichen Bildes nur mit unendlichemAufwand und damit praktisch unmöglich ist. Deshalb muss die ideale Interpolation durchEinschränkungen vereinfacht und in realen Systemen die Impulsantwort beschnitten werden.

2.9.1 Lineare InterpolationDie lineare Interpolation ist der klassische Interpolationsansatz. Benachbarte Gitterpunktewerden durch Geraden, auf denen die interpolierten Punkte liegen, verbunden. ZurVereinfachung werden im Folgenden normierte räumliche Koordinaten benutzt. AusSymmetriegründen seien die beiden vorhandenen Gitterpunkte bei –½ und ½. Daraus ergibtsich die Interpolationsgleichung:

(2.22)

Vergleicht man (2.22) mit der Faltungsformel (2.9) ergibt sich die kontinuierlicheInterpolationsmaske für die lineare Interpolation:

(2.23)

16

Abb. 2.16: Veranschaulichung der linearen Interpolation a) Bei x=0 wird der Mittelwert von g1/2 und g-1/2 genommen, b) bei x=1/2 wirdg1/2 repliziert

Die lineare Interpolation ist in Abbildung 2.16 dargestellt. Die Interpolationsmaske (2.23) isteine Dreiecksfunktion, deren Übertragungsfunktion einer quadrierten sinc-Funktionentspricht:

(2.24)

2.9.2 Interpolation mit SplinesNeben der Methode der linearen Interpolation besteht die Möglichkeit mit Polynomen höhererOrdnung zu interpolieren. Jedoch ist die Genauigkeit auch hier begrenzt und es ergibt sich einweiteres Problem. Die interpolierte Kurve ist schon in der ersten Ableitung an denStützstellen unstetig, da für jedes Intervall zwischen den Stützstellen ein anderes Polynomverwendet wird. Somit ist zwar die interpolierte Funktion stetig, ihre Ableitung aber nicht.Genau diese Tatsache wird durch die Verwendung von Splines vermieden. Dies geschiehtdurch zusätzliche Stetigkeitsbedingungen für die Ableitungen an den Stützstellen.

Die verschiedenen Spline-Funktionen sind in Klassen unterteilt, im Folgenden wird dieKlasse der B-Splines genauer betrachtet. Da diese separierbar sind, genügt die Betrachtungder eindimensionalen Funktion. Eine B-Splinekurve der Ordnung P wird durch eine (P+1)-fach mit sich selbst gefaltete Rechteckfunktion erzeugt (Abb. 2.17a).

(2.25)

a) b)

Abb. 2.17: a) B-Spline-Interpolationskerne, erzeugt durch eine kaskadierte Faltung des Rechteckkerns, nullter Ordnung (nächster Nachbar),erster (lineare Interpolation), zweiter (quadratischer B-Spline) und dritter Ordnung (kubischer B-Spline); b) zugehörige Transferfunktionen

17

Wie in Abbildung 2.17b zu sehen ist, nimmt die Übertragungsfunktion der B-Spline-Funktionsehr schnell ab und es kommt zu einer zu starken Glättung.Um die B-Spline-Funktion zur Interpolation nutzen zu können, müssen die diskretenStützstellen so transformiert werden, dass die Faltung mit einer B-Spline-Kurve dasOriginalbild an den Stützstellen wiederherstellt. Diese Transformation heißt B-Spline-Transformation und wird aus der folgenden Bedingung konstruiert:

(2.26)

Nach einigen Rechenschritten ergibt sich die effektive Übertragungsfunktion für die kubischeB-Spline-Interpolation:

(2.27)

2.9.3 Interpolation mit idealem TiefpassDie Interpolation mit einem idealen Tiefpass entspräche einer idealen Interpolation.Programmtechnisch lässt sich dies mittels FFT leicht approximieren: In derZeitbereichsdarstellung der zu interpolierenden Funktion werden zwischen den einzelnenzeitdiskreten Werte, je nach Skalierungsfaktor p, p -1 Nullen eingefügt. Anschließend wirdmittels FFT in den Frequenzbereich transformiert. Die Multiplikation des Spektrums mit derRechteckfunktion eines idealen Tiefpasses entspricht einer Faltung mit der sinc-Funktion imZeitbereich. Um die resultierende Zeitbereichsdarstellung zu erhalten, muss das entsprechendbeschnittene Spektrum mit Hilfe der IFFT wieder zurück transformiert werden. Dadurch hatman erreicht, dass durch die Faltung mit der sinc-Funktion der Verlauf der Funktion mit denzusätzlich eingefügten Nullen geglättet und interpoliert wird.

Um aus diskreten Werten des Zeitbereichs beliebige Zwischenwerte zu berechnen, kann auchdie folgende Filter-Realisierung benutzt werden:

(2.28)

Da die sinc-Funktion jedoch unendlich ausgedehnt ist, ist der Rechenaufwand nichtpraktikabel, und deshalb gerade bei Bildern, bei denen eine zweidimensionale Faltungerforderlich ist, nicht brauchbar. Es besteht jedoch die Möglichkeit, mit einem realen Tiefpasszu interpolieren, indem man eine Fensterung der sinc-Funktion durchführt. Hierzu können dieFensterfunktionen (2.17) – (2.21) genutzt werden. Dabei ist zu beachten, dass dieFilterkoeffizienten mit dem Skalierungsfaktor p multipliziert werden müssen.

Analog dazu ist es ebenfalls möglich die Interpolation eines 2-D Bildes mit einem 2-DTiefpass durchzuführen. Ist die Separierbarkeit gewährleistet (vgl. Abschnitt 2.4) kann auchnacheinander in horizontal und vertikaler Richtung mit dem entsprechenden 1-D Filterninterpoliert werden.

18

2.10 Die Zonenplatte

Die Fresnelsche Zonenplatte besteht aus einer Anordnung konzentrischer Kreise, derenOrtsfrequenz zum Rand hin zunimmt. Die Zonen unterscheiden sich in ihrer Transparenz undihrer optischen Wellenlänge. Zu unterscheiden ist zwischen der binären (Abb. 2.18a) und dersinus- bzw. kosinusförmigen Verlauf (Abb. 2.18b). Strahlung wird an den ringförmigenPlatten gebeugt und durch konstruktive Interferenz in Brennpunkten verstärkt. Werden dieschwarzen Zonen durch ein Material genau bestimmter Dicke ersetzt, das einePhasenverschiebung des Lichts um 180° bewirkt, kann die transmittierte Strahlung ebenfallsin Brennpunkten interferieren. Für den Versuch wird aber diese Eigenschaft nicht verwendet.

a) b)

Abb. 2.18: Fresnelsche Zonenplatte a) binär, b) Kosinus-Verlauf

Die Abbildung der Kosinus-Zonenplatte eignet sich auch sehr gut um das Auftreten desAliasing-Effektes bei der Digitalisierung zu zeigen, da aufgrund der von innen nach außensteigenden Frequenzen des konzentrischen Kosinussignals ein breites Spektrum anOrtsfrequenzen enthalten ist. Je nach Abtastfrequenz kommt es durch hohe Ortsfrequenzen zueiner Verletzung des Abtasttheorems und somit zu Aliasing-Effekten.

2.11 Der RGB-Farbraum und das YUV-Farbmodell

Die Farbmetrik versucht das Farbempfinden des Menschen durch mathematische Formelnund Zahlen auszudrücken. Ziel ist es, eine Farbe als einen Farbort in einem Farbsystemdarzustellen, und ihn in einem Farbraum (Gamut) abzubilden. Das Farbraumsystemquantifiziert die Farben eines Farbraumes. Diese Farbräume bestimmen die Menge antheoretisch darstellbaren Farben, zum Beispiel kann ein Farbraum alle Farbreize desmenschlichen Auges umfassen, oder auch die von einem Monitor darstellbare Farbmenge sein(RGB-Geräte-Farbraum).

Abbildung 2.19 zeigt den RGB-Farbraum. Die einzelnen Farben setzen sich jeweils aus denKomponenten Rot, Grün und Blau zusammen. Je nach Gewichtungsfaktoren ergeben sich dieeinzelnen Farborte des Farbraumes.

19

Abb. 2.19: RGB-Würfel

Das YUV-Farbmodell unterteilt die Farbinformation in Helligkeit (Luminanz) und Farbanteil(Chrominanz). Der Farbanteil wird wiederum in zwei Farbdifferenzsignale unterteilt, das U-und das V-Signal. Anwendung findet dieses Modell auch in Video- und TV-Standards wiePAL oder NTSC.

Die einzelnen Signale ergeben sich aus den Anteilen des RGB-Farbraums und erfolgen nachfest definierten Beziehungen.Y = 0,299·R + 0,587·G + 0,114·B (2.29)U = (B – Y)·0,493 (2.30)V = (R – Y)·0,877 (2.31)

Umgekehrt lassen sich aus dem YUV-Modell die Einzelkomponenten des RGB-Farbraumesberechnen:B = Y + U/0,493 (2.32)R = Y + V/0,877 (2.33)G = Y – 0,39466·U – 0,5806·V (2.34)Bei der Berechung des Grünanteils handelt es sich um eine Näherungsformel.

Die Gewichtungsfaktoren des YUV-Farbmodells berücksichtigen die Farbwahrnehmung desmenschlichen Auges. So wird beispielsweise grün heller wahrgenommen als rot, dieseswiederum heller als blau.

Durch den Aufbau der menschlichen Netzhaut ergibt sich außerdem, dass dieHelligkeitsinformation in höherer Auflösung wahrgenommen wird als die Farbinformation, sodass eine Reduzierung der Ortsauflösung (Unterabtastung) der Chrominanz vorgenommenwerden kann, ohne große Qualitätsverluste hinnehmen zu müssen. Auf diese Weise kann beider Übertragung Bandbreite eingespart werden.

2.12 Farbunterabtastung

Wie bereits im voran gegangenen Teilabschnitt erwähnt, ist es in vielen Formaten üblich dieFarbdifferenzsignale des YUV-Modells mit einer geringeren Ortsauflösung zu übertragen. Jenach Verteilung der Farbinformation unterscheidet man zwischen folgenden, in Abbildung2.20 dargestellten, Abtastrastern.

20

Abb. 2.20: Abtastraster

4:4:4 :Bei dieser Art der Abtastung wird jeder Kanal des RGB-Signals mit der gleichen Bandbreiteübertragen. Das heißt die Farbsignale Rot, Grün und Blau werden vollständig übertragen, esfindet also keine Unterabtastung statt.

4:2:2 :Ausgangspunkt ist nun das YUV-Modell. Es findet eine horizontale Unterabtastung derFarbdifferenzsignale U und V statt. Während die Helligkeitsinformation in Y vollständigübertragen wird, steht für die Farbinformation nur die halbe Bandbreite zur Verfügung, wasauch durch die Faktoren 4 und 2 zum Ausdruck gebracht wird.

4:2:0 :Die Bezeichnung dieses Abtastrasters kann leicht falsch verstanden werden. Es ist nicht derFall, dass ein Farbkanal gar nicht übertragen wird, sondern dass sowohl eine horizontale, alsauch eine vertikale Unterabtastung beider Farbdifferenzsignale erfolgt. Vier Pixel desLuminanzsignals Y wird also nur ein Pixel mit Farbinformation zugeordnet.

4:1:1 :Es wird auf eine vertikale Unterabtastung verzichtet und stattdessen eine stärkere horizontaleUnterabtastung gewählt. Vier nebeneinander liegenden Bildpunkten wird die gleicheFarbinformation zugeordnet.

2.13 Glossar

Abtasttheorem:Das Nyquist-Shannonsche-Abtasttheorem besagt, dass ein kontinuierliches, bandbegrenztesSignal mit einer Minimalfrequenz von 0 Hz und einer Maximalfrequenz fmax, mit einerFrequenz größer als 2·fmax abgetastet werden muss, um aus dem so entstehenden zeitdiskretenSignal das ursprüngliche Signal exakt rekonstruieren zu können, ohne dass Informationenverloren gehen.

21

Aliasing-Effekte:Als Aliasing-Effekte werden Fehler beim digitalen Abtasten von Signalen bezeichnet, diedurch Verletzung des Abtasttheorems auftreten. In der Bildverarbeitung treten diese Effektebei der Abtastung von Bildern auf und führen zu Mustern, welche ursprünglich nicht im Bildenthalten waren (vgl. Moiré-Effekt).

Antialiasing:Als Antialiasing werden sämtliche Maßnahmen zur Beseitigung oder Minderung derAliasing-Effekte bezeichnet. Durch Tiefpassfilterung werden die für die Aliasing-Effekteverantwortlichen, hohen Frequenzen des Ausgangssignals gedämpft.

Fensterfunktion:Um eine endlich lange Impulsantwort mit der gewünschten Filterlänge N zu erhalten, wirddurch eine Fensterfunktion ein Ausschnitt der unendlichen Impulsantwort ausgewählt. Dertatsächliche Frequenzgang des Filters entspricht somit der Faltung des gewünschtenFrequenzgangs mit der Fourier-Transformierten der Fensterfunktion.

Gibb’sches Phänomen:Als Gibb’sches Phänomen bezeichnet man das typische Verhalten von Fourier-Reihen anSprungstellen. Entwickelt man eine Fourier-Reihe aus einer unstetigen Funktion, kommt es inder Umgebung der Sprungstellen zu Über- bzw. Unterschwingern.

Interpolation:Die Interpolation [lateinisch »Einschaltung«] beschreibt die Konstruktion einerNäherungsfunktion f* zu einer Funktion f, von der bekannt ist, dass sie an vorgegebenenStellen x1, x2, ..., xn (den Stützstellen) vorgegebene Werte f(x1), f(x2), ..., f(xn) (Stützwerte)annimmt. Die Näherungsfunktion muss überall zwischen den Stützstellen stetig sein. DurchAuswerten der Näherungsfunktion können Näherungswerte für die Funktion f an beliebigenStellen zwischen den Stützstellen bestimmt werden. Der einfachste Fall ist die lineareInterpolation, bei der benachbarte Stützpunkte durch Geradenabschnitte verbunden werden.Ein weiteres Verfahren ist die Interpolation durch Polynome oder durch Tiefpassfilter.

Moiré-Effekt:Der Moiré-Effekt (von frz. moirer „marmorieren“) macht sich bei der Überlagerung vonRastern oder Linien durch die Entstehung neuer Linien bemerkbar.

Nyquistfrequenz:Die Nyquistfrequenz entspricht der halben Abtastfrequenz.

Schnelle Fourier-Transformation:Die schnelle Fourier-Transformation (FFT: Fast Fourier-Transformation) ist ein Algorithmuszur schnelleren Berechnung der Diskreten Fourier-Transformation (DFT). Bei derBerechnung werden zuvor errechnete Zwischenwerte verwendet und somit arithmetischeRechenoperationen eingespart.

Unterabtastung:Wird ein Signal mit weniger als seiner doppelten Bandbreite (vgl. Nyquistfrequenz)abgetastet spricht man von Unterabtastung des Signals. Dabei wird das Abtasttheorembewusst verletzt, was zu Problemen bei der späteren Rekonstruktion des Signals führt, daInformationen verloren gehen.

Überabtastung:Überabtastung beschreibt die Abtastung eines Signals mit einer Frequenz, die oberhalb derdoppelten Bandbreite dieses Signals liegt.

22

3. MATLAB-Funktionen

Die folgende Tabelle enthält die für den Versuch benötigten MATLAB-Funktionen. Diesesind zum Teil im MATLAB Programmpaket enthalten, zum Teil für diesen Versuchprogrammiert. Die Reihenfolge ist am Versuchsablauf orientiert.

Für die einzelnen Funktionen existieren Hilfen. Diese können mit>> help(Funktionsname);aufgerufen werden. Darin finden sich detaillierte Beschreibungen und Beispiele.

Funktion Beschreibungidealtp(fg,fa) Erzeugen eines idealen Tiefpasses mit fg = Grenzfrequenz und fa

= Abtastfrequenz. Das Verhältnis fa/fg entspricht dem halbenAbtastfaktor q/2 bzw. p/2

plot(x) Darstellung eindimensionaler Signalefft(x) Schnelle Fourier-Transformationifft(x) Inverse schnelle Fourier-Transformationwindow(x,n,’win’) Symmetrische Fensterung von x über n Samples mit der

Fensterfunktion win (2.17)-(2.21).real(x) Zeigt den Realteil von x animread(’img.typ’) Einlesen der Bilddateien ’img.typ’imwrite(x,’img.typ’) Speichern von x in die Bilddatei ’img.typ’shift(x,n) Verschiebt die Koeffizienten der gefensterten Impulsantwort x um

n Werte so, dass eine zusammenhängende Impulsantwort entstehtzoneplate(n,per) Erzeugung einer digitalen Abbildung der Zonenplatte mit

Kantenlänge n und der kleinsten vorkommenden Periodenlängevon per Samples

imgfilter(f,x) Filterung der Bilddaten x mit dem Filter f in horizontaler undvertikaler Richtung

downsample2(x,q)7 Unterabtastung der Bilddaten x in horizontaler und vertikalerRichtung; q entspricht dem Faktor der Unterabtastung

a:s:b Erzeugt eine Zahlenreihe von a bis b mit Schrittweite sstem(x) Zeigt die Stützstellen der Funktion x aninterp1(x,y,xx) Lineare Interpolationspline(x,y,xx) Spline Interpolationfilter(a,b,x) Filterung der eindimensionalen Daten x mit den Filterkoeffizienten

a, bupsample2(x,p) Zeilen- und spaltenweises Einfügen von p-1 Nullen in die Daten

von xrgb2yuv(RGB) Erzeugt ein Array aus den Komponenten Y, U und V des YUV-

Farbmodells aus dem RGB-Bild rgb ;Beispiel: [Y,U,V]=rgb2yuv(RGB);

yuv2rgb(Y,U,V) Erzeugt ein Array aus den Komponenten RGB, R, G und B desRGB-Modells aus den Komponenten des YUV-Farbmodells;Beispiel: [RGB,R,G,B]=yuv2rgb(Y,U,V);

quant(x,s) Quantisierung der Daten x mit Schrittweite s zwischen denQuantisierungsstufen

23

4. Versuchsdurchführung

4.1 Benötigte Hilfsmittel

Für die Ausführung des Versuchs werden folgende Mittel benötigt:- Rechner mit einer aktuellen Version von MATLAB und Schnittstelle zumAnschließen einer Digitalkamera / eines Druckers.

- Digitalkamera- Ausdruck der Zonenplatte als Foto-Vorlage- Drucker

4.1 Versuchsaufgaben

1. Aufgabe: MotivationNehmen Sie mit der eigenen oder einer gestellten Digitalkamera ein bildfüllendes Foto derZonenplatte auf. Übertragen Sie dieses auf den Rechner und öffnen Sie es. Ändern Sie nundie Darstellungsgröße durch Zoomen oder durch Vergrößern bzw. Verkleinern derFenstergröße. Welche Effekte treten dabei im Bild auf? Stellen Sie Überlegungen an, was mitden Bilddaten geschehen muss, damit Größenänderungen ohne Artefakte möglich sind!

Öffnen Sie für die nachfolgenden Aufgaben die auf dem Rechner installierte Version vonMATLAB. Die durchgeführten Einzelschritte sind jeweils graphisch zu dokumentieren. Füreinen reibungslosen Ablauf ist es sinnvoll Variablen nicht zu überschreiben, sondern neueVariablennamen einzuführen. Die Fensterungen sollen über 5 Nulldurchgänge der jeweiligenImpulsantwort erfolgen, falls im entsprechenden Aufgabenteil keine explizite Vorgabeenthalten ist.

2. Aufgabe: FFT und Fensterung in MATLAB

2a)Erzeugen Sie in MATLAB einen Tiefpass mit rechteckförmiger Filterflanke bei derGrenzfrequenz fg = 128 Hz. Der Tiefpass soll aus insgesamt 1024 Samples bestehen, wodurchsich bei einer Frequenzauflösung von 1 Hz eine Abtastfrequenz von fa = 1024 Hz ergibt.Stellen Sie den Betrag der Übertragungsfunktion graphisch dar! Der Tiefpass soll nun mittelsinverser schneller Fourier-Transformation (IFFT) in den Zeitbereich transformiert werden.Dies muss symmetrisch zur Frequenz Null erfolgen (siehe Kapitel 2.7). Dazu wird der ifft-Funktion, neben dem zu transformierenden Tiefpass, der Zusatz ’symmetric’ übergeben.Welcher Funktionsverlauf ergibt sich im Zeitbereich für die Impulsantwort? Welchenzeitlichen Abstand besitzen aufeinander folgende Abtastwerte?

2b)Führen Sie eine Rechteck-Fensterung über die ersten 5 Nulldurchgänge der Impulsantwortdurch. Transformieren Sie die gefensterte Zeitbereichsdarstellung mittels schneller Fourier-Transformation (FFT) in den Frequenzbereich zurück und betrachten Sie den Realteil derFrequenzbereichsdarstellung. Erläutern Sie die Auswirkung der Fensterung auf den idealenTiefpass!

24

2c)Wiederholen Sie Aufgabe 1b und verwenden Sie statt dem Rechteck- ein Hann-Fenster.Welche Unterschiede stellen Sie im Vergleich zu Aufgabe 1b fest? Wie lassen sich dieseerklären?

3. Aufgabe: Bildabtastung und Antialiasing-Filterung

3a)Erzeugen Sie mit Hilfe der Funktion „zoneplate(n, per)“ das digitale Bild einerKosinus-Zonenplatte mit der Kantenlänge n = 640. Die kleinste periodische Struktur im Bildsoll aus 6 Samples bestehen.

3b)Führen Sie eine Antialiasing-Filterung des Bildes durch. Dazu wird eine zusammenhängendeImpulsantwort des Tiefpassfilters benötigt. Erzeugen Sie diese aus der gefenstertenImpulsantwort aus Aufgabe 2c (n = 21) durch Verschieben der Samples. Nutzen Sie die dafürvorgesehene Funktion „shift“. Achten Sie beim Anwenden der Funktion imgfilterunbedingt auf die Reihenfolge der Parameter! Vergleichen Sie das gefilterte Bild mit demErgebnis aus Aufgabe 3a. Begründen Sie die Auswirkung der Filterung auf das Bild.

3c)Das gefilterte Bild soll nun vierfach unterabgetastet werden (q=4). Dies geschieht, indem inhorizontaler und vertikaler Richtung nur jeder q-te Bildpunkt verwendet wird. Stellen Sie dasunterabgetastete Bild auf dem Bildschirm dar und drucken Sie es aus!

3d)Führen Sie analog zu Aufgabe 3c eine vierfache Unterabtastung mit dem ungefilterten Bildaus Aufgabe 3a durch. Welche Unterschiede sind im Vergleich zum Ergebnis aus Aufgabe 3cfestzustellen und wie kommen diese zustande?

4. Aufgabe: Interpolation

4a)Erzeugen Sie in MATLAB eine Sinus-Wellenzug der Länge 5 Perioden. Die Stützstellensollen im Abstand von π/2 berechnet und graphisch dargestellt werden. Führen Sie zunächsteine lineare Interpolation, eine Interpolation mit Splines und zuletzt eine Interpolation miteinem passenden Tiefpass durch (vgl. Kapitel 2.9.3). Wie unterscheiden sich die Verläufe derSinus-Funktion nach den verschiedenen Interpolationsarten? Begründen Sie die Unterschiede!Welche Besonderheit ergibt sich bei der Tiefpassfilterung und warum?

4b)Erzeugen Sie ein Bild der Zonenplatte mit n=160. Die kleinste vorhandene Struktur soll auszwei Samples bestehen. Vergrößern Sie das Bild um den Faktor p=4. Nutzen Sie zurInterpolation einen auf den Skalierungsfaktor ausgelegten Tiefpass.Vergrößern Sie das erzeugte Bild mittels einfacher Pixelwiederholung. Stellen Sie die beidenVergrößerten Darstellungen auf dem Bildschirm dar und drucken Sie die Bilder aus.Vergleichen Sie die Ergebnisse!Hinweis: Die Pixelwiederholung entspricht einer Interpolation Nullter Ordnung (Faltung mit[1 1 1 1]).

25

5. Aufgabe: Farbunterabtastung und Quantisierung

5a)Lesen Sie die Bilddatei „Farbtest.jpg“ aus dem Versuchsordner in MATLAB ein. Essoll nun eine 4:2:0 Farbunterabtastung durchgeführt werden, wozu Sie zunächst dieKomponenten des YUV-Modells aus dem RGB-Bild erzeugen müssen. Betrachten Sie dieeinzelnen Komponenten! Für beide Farbdifferenzsignale soll eine Antialiasing-Filterung, eineUnterabtastung mit dem Faktor q = 2 und eine anschließende Interpolation durchgeführtwerden. Dazu muss zunächst ein entsprechendes Filter konstruiert werden.Rekonstruieren Sie nun aus dem Y-Signal sowie den gerade unterabgetasteten undinterpolierten Farbdifferenzsignalen U und V das RGB-Bild des Testbildes. Vergleichen Siedas rekonstruierte Bild mit dem Original auf dem Bildschirm! In welchen Bereichen desBildes erkennen Sie Unterschiede?Wiederholen Sie den Versuchsteil mit der Bilddatei Lena.jpg.

5b)Mit Hilfe der MATLAB-Funktion quant ist es möglich, Wertemengen auf bestimmteSchrittweiten zu quantisieren. Wenden Sie diese Funktion mit verschiedenen Schrittweitenzwischen den Quantisierungsstufen auf beide Testbild an. Welchen Effekt hat dieBeschränkung auf bestimmte Werte, die gleichermaßen für Rot-, Grün-, und Blauanteil gilt?Ab welcher Schrittweite können Sie auf dem Bildschirm keine Farbunterschiede mehrerkennen?Führen Sie die gleichen Untersuchungen für eine Quantisierung von Y sowie von U und Vdurch, wobei für U und V andere Quantisierungsstufenzahlen als für Y gewählt werden könne.Wie viele Bit wurden im Originalbild verwendet und wie viele Bit können durch dieQuantisierung von RGB bzw. YUV eingespart werden?

4. Literatur

[1] Jähne, B.: „Digitale Bildverarbeitung“, Springer, 2005

[2] Pandit, M.: „Methoden der Digitalen Bildverarbeitung für die Anwendung“,Fortschritt-Berichte VDI Reihe 10 Nr.669, VDI Verlag GmbH, 2001

[3] Rupprecht,W.: „Signale und Übertragungssysteme“, Springer, 1993

[4] Wahl, F.: „Digitale Bildsignalverarbeitung“, Springer, 1984

[5] Haberäcker: „Digitale Bildverarbeitung (Grundlagen und Anwendungen)“, Hanser, 1991

[6] Kammeyer, K.; Kühn, V.: „Matlab in der Nachrichtentechnik“,J.Schlembach Fachverlag, 2001

Stand: 17.05.09