Zusammenfassung Bildverarbeitung 1 Niklas Nilius 11111186 16. Juli 2020 Sommersemester 2020 Zusammenfassung BV1 Seite 1 Inhaltsverzeichnis 2 Quantisierung 2.1 Gammakorrektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Gleitkommabilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Quantisierungsfehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Contouring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 2 2 3 Homogene Punktoperationen 3.1 Lineare Kontrastspreizung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Histogramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 4 Zweidimensionale Fourier-Transformation 4 5 Bildrestaurierung 5.1 Rauschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Unsharp Masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 6 Lineare Filter 6.1 z-Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 FIR-Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Binomialfilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.2 Hochpassfilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 6 7 IIR-Filter und rekursive Filter 7.0.1 Rechteckfilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 8 Detektion von Kanten und Linien 8.1 Gradientenbasierte Kantendetektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Bekannte Kantenfilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1 Sobel-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.2 Prewitt-Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.3 Erweiterungen von Sobel und Prewitt . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 7 8 8 9 Detektion von Ecken und Flächen 9 10 Die diskrete Fourier-Transformation 10 11 Bildkompression 11 12 Filterbänke 12 13 Abtastung 13 14 Änderung der Abtastung 14 15 Interpolation 15 16 Ordnungsstatistikfilter 16 17 Adaptive Filter 17 18 Morphologische Filter 18 19 Farbe 19 20 Korrespondenzanalyse 1 20 21 Korrespondenzanalyse 2 21 1 Zusammenfassung BV1 Seite 2 2 Quantisierung 2.1 Gammakorrektur das Quantisierungsintervall gekoppelt. Der Quantisierungsfehler ergibt sich als 0,3-fache Breite des Quantisierungsintervalls. Bei der Digitalisierung werden reelle Zahlen auf endlich viele Werte begrenzt. Die menschliche Hellempfindung ist nicht linear, sondern verläuft nach der ëigenmetrischen Skala nach Stevens". Diese entspricht der Potenzfunktion mit Exponent zwischen 0,3 und 0,5. Gamma-Funktion: 1 f (x) = x γ 2.4 Contouring Entsteht durch zu wenig Quantisierungsstufen und eine langsame Änderung der Helligkeit in bestimmten Bildregionen. Dadurch entstehen Flecken, da entlang einer Kontur, Sprünge zur nächsten Quantisierungsstufe entstehen. (1) mit γ ≈ 2, 2 Der Vorteil der Potenzfunktion, gegenüber der Logarithmusfunktion nach dem Weber-Fechnerschen Gesetz, liegt darin, dass die Werte für 0 und 1 beibehalten werden. Der Logarithmus geht für 0 zum Beispiel gegen Unendlich. Für den Standard sRGB wurde γ = 2, 2 gewählt, für Werte x ≤ 0, 00304 wird die eine lineare Steigung von 12,92 eingestellt, da die Steigung in dem Bereich sonst zu steil wäre. 12, 92x f ür x ≤ 0, 00304 1 (2) f (x) = 2,4 f ür x > 0, 00304 1, 055x Abbildung 1: Schematische Darstellung von Contouring 2.2 Gleitkommabilder Bei linearer Quantisierung und Verwendung von Ganzzahlvariablen bei der Quantisierung, ist der Abstand zwischen den Stufen immer gleich. Dadurch ist die relative Genauigkeit im Hellen wesentlich höher als im Dunklen. Man kann nun Gleitkommawerte verwenden. Vorteile: Kann man durch Hinzufügen von Rauschen vor der Quantisierung vermeiden. Wenn auch nur geringes Rauschen auf dem Bild liegt, enstehen keine Flächen gleich Helligkeit und so entsteht auch kein Rauschen bei zu niedriger Quantisierung. • Hohe relative Genauigkeit, keine Quantisierungsprobleme im Dunkeln. • Werte können physikalische Einheiten wiederspiegeln, zum Beispiel die Leuchtdichte im Bild. • Negative Werte können dargestellt werden. Nachteile: • 32Bit pro Pixel(für Grauwertbilder) erfordern viel Speicher. 2.3 Quantisierungsfehler Jede Messung ist mit Fehlern behaftet, so auch die Digitalisierung von Bildern. Lineare Helligkeitsanstiege können nur Stufenhaft gespeichert werden. Dadurch wird Rauschen im Bild verursacht, dieses ist in seinem Umfang an 2 Zusammenfassung BV1 3 Seite 3 Homogene Punktoperationen Sind die einfachsten Bildoperationen, da jedem Bildpunkt über eine feste, monotone Funktion f ein neuer Pixelwert zugeordnet wird. Diese Funktion ist davon unabhängig wo der Pixel im Bild ist und was sich um den Pixel herum befindet. Man spricht auch von der Anwendung einer Kennlinie. Beispiele für Homogene Punktoperationen: • Gammakennlinie: f (x) = cxγ • Lineare Kontrastspreizung • Helligkeitsumkehr(Invertierung) • Hinzufügen von Rauschen zur Reduzierung von Contouring • Look Up Tabellen(LUTs) Abbildung 2: Originalhistogramm, nach Subtraktion, nach Multiplikation 3.1 Lineare Kontrastspreizung Einfaches aber wichtiges Werkzeug in der Bildbearbeitung. In einem Bild sind die hellsten und dunkelsten Pixelwerte nicht immer am Rand des Wertebereichs. Den Kontrast kann man spreizen, indem der gesamte Bildinhalt, „nach Links verschoben “ wird (die Differenz von niedrigstem Wert zu Null wird subtrahiert). Anschließend wird mit einem Verstärkungsfaktor multipliziert. Die Operation ergibt sich durch: f (x) = W (x − m) M −m Da es sich nur um diskrete Werte handelt, passiert es, dass verschiedene Eingangswerte auf denselben Ausgangswert abgebildet werden. Deswegen sieht man im gespreizten Bild, die Lücken. Es fehlen also Werte und diese können nicht mehr rekonstruiert werden. 3.2 Histogramm Es ist hilfreich das Bild statistisch zu analysieren um homogene Punktoperationen darauf gezielter Anwenden zu können. Nur den Mittelwert und die Varianz zu kennen ist oft zu grob. Besser man teilt den Grauwertbereich in gleich große Intervalle, bei 8 Bit 256 Intervalle. Dann zählt man wieviele Pixel es pro Grauwert im Bild gibt und füllt damit (3) einen sogenannten Bin. Jeder Grauwert wird durch die Anzahl der Pixel geteilt, so ergibt sich die Summe aller Grauwerte gleich 1. Dabei ist W der maximale Wert für Weiß, M der hellste und m der dunkelste Bildinhalt. 3 Zusammenfassung BV1 Seite 4 Eine andere Möglichkeit ist das kumulierte Histogramm. Dazu addiert man die Werte des Histogramms von links nach rechts auf. Damit weiß man wie hoch die Anzahl der Grauwerte unter einem bestimmten Wert ist. Je steiler das kumulierte Histogramm, umso höher ist das normale Histogramm an dieser Stelle. 4 Zweidimensionale Fourier-Transformation Ein Abbildungssystem kann als lineares ortsinvariantes System angesehen werden. Ein Punkt in der Eingangsebene wird über eine sogenannte Point-Spread-Function(PSF) auf die Ausgangsebene in Form eines Lichtflecks mit bestimmter Helligkeitsverteilung abgebildet. Wenn nun ein Bild a(x,y) auf der Eingangsebene gezeigt wird, überlagern sich die Antworten h(x-u,y-v) auf dem Ausgangsschirm b(x,y). Die Einganswerte werden mit dem der Impulsantwort des Systems gefaltet. Im Frequenzbereich wird daraus eine Multiplikation. Z ∞Z ∞ S(fx , fy ) = −∞ s(x, y)e−2πi(xfx +yfy ) dxdy −∞ Schwankungen der einfallenden Elektronen. Handelt es sich um zweiteres Rauschen, so ist dies von der Signalstärke abhängig. In beiden Fällen ist der Einfluss des Rauschens bei geringem Signal deutlich stärker. Ist das Rauschen signalunabhängig, kann man durch Dunkelmessung das Rauschspektrum ermitteln und rauscharme Frequenzen reduzieren und die anderen Verstärken damit sich das Verhältnis ändert. Beim Signal geht das nicht so einfach, da man nicht trennen kann was Signal und was Rauschen ist. Das Betragsspektrum des Signals liegt in der Regel hauptsächlich in den tiefen Frequenzen und ein paar Linien, die Kanten im Bild darstellen. Der Wiener Filter ist der Versuch aus dem gemessenen Signal, durch lineare Filterung so gut es geht, das originale Signal zu ermitteln. Dieser Filter ist wie folgt definiert: G= S1 (fx ) · S2 (fy ) = Z ∞ Z ∞ s1 (x)e−2πixfx dx · s2 (y)e−2πiyfy dy −∞ G= (5) −∞ Die Wellen bewegen sich im Ortsbereich, deswegen spricht man von der Ortsfrequenz. Diese wird in einer Einheit wie „Linienpaare pro mm“ angegeben. fx ~ Die Richtung der Welle entspricht f = fy ~ mit der Frequenz kf k. Die Richtung des Vektors entspricht also der Ausbreitungsrichtung und die Länge entspricht der Frequenz. ~ Der Phasengang eiϕ(f ) entspricht der Verschiebung der Extrema gegenüber dem ursprünglichem Signal. 5 Bildrestaurierung 5.1 Rauschen (6) da das Signal-Rausch-Verhältnis durch E|N |2 SN R = E|X| 2 gegeben ist, kann man die Formel auch so schreiben: (4) Die Transformation wird in der Regel als Hintereinanderausführung zuerst in die eine, danach in die andere Richtung vorgenommen. H∗ E|N |2 |H|2 + E|X|2 H∗ |H|2 + SN R−1 (7) Dabei ist X das Signal, N das Rauschen und E der Erwartungswert. H ist die Übertragungsfunktion des linearen Systems, H ∗ ist komplexkonjugiert. Alles im Frequenzbereich. Bei einem guten Signal-Rausch-Verhältnis wird der Kehrwert von H∗ SN R−1 klein und der Einfluss von |H| 2 ist größer, 1 durch Kürzen entspricht dann G ≈ H . Also dem Kehrwert der Übertragungsfunktion. Mit steigender Frequenz wird das SNR aber schlechter und der Filter ergibt sich als G ≈ H ∗ · SN R. Die Signalaufbereitung durch Tiefpassfilterung funktioniert also in der Regel bei Bildern nur eingeschränkt. 5.2 Unsharp Masking Zur Erhöhung der Bildschärfe, kann anstatt der Anwendung eines Hochpassfilters, einfach ein Tiefpassfilter angewendet werden. Dieses tiefpassgefilterte Bild zieht man anschließend von dem Original ab und erhält so ein Bild in dem die tiefen Frequenzen schwach vertreten sind und die hohen umso mehr. Jede Messung ist verrauscht, durch verschiedene Quellen wie Rauschen der Elektronik und zufällige 4 Zusammenfassung BV1 6 Seite 5 Lineare Filter 6.2.1 Binomialfilter Im Unterschied zur eindimensionalen Faltung, ist der Filterkern und die Impulsantwort bei Anwendung auf Bildern zweidimensional und in alle vier Richtungen gleich ausgedehnt. Also nach oben, unten, rechts und vor allem nach Links. Anschaulich kann man sich das so vorstellen, dass man den Filterkern über das Eingangsbild legt und der zentrale Pixel im Filterkern auf dem abzubildenden Pixel im Ausgangsbild liegt. Nun bildet man über alle Pixel, die unter dem Filterkern liegen jeweils das Produkt und summiert dann auf. Das Ergebnis ist der Pixel im Ausgangsbild an der Stelle. Der Filterkern ergibt sich aus der Impulsantwort gespiegelt am Nullpunkt. Nimmt man den Mittelwert eines Pixels mit seinem rechten Nachbarn, erhält man die Übertragungsfunktion des Binomialfilters erster Ordnung: Die Summe der Filterkernelemente bestimmt mit welchem Faktor die Frequenz 0 verstärkt wird. Die Frequenz 0 entspricht der mittleren Helligkeit. → Normalize Kernel Bn (z) = 2−n (1 + z −1 )n = Bn (f ) = e−πinf cosn (πf ) (9) 6.1 1 1 1 2πif + e = eπif + (eπif +e−πif ) = eπif cos(πf ) 2 2 2 (8) An dem letzten Term, erkennt man den Amplituden- und Phasengang des Filters. Der Amplitudengang entspricht einem halben Durchgang der Cosinusfunktion, der Phasengang ist um ein halbes Pixel nach rechts verschoben. Allgemein für höhere Ordnungen handelt es sich einfach um die entsprechnde Zeile im Pascalschen Dreieck. Die allgemeine Form lautet: B1 (f ) = z-Transformation Verschiebt man den Eingangsbereich um ein Pixel nach rechts, so entspricht das im Frequenzbereich einer Multiplikation mit e−2πifx . Der Einfachheit halber nennt man den Term zx−1 . Entsprechend gilt folgendes: • Verschiebung 1 nach links: e2πifx = zx • Verschiebung 1 nach rechts: e−2πifx = zx−1 • Verschiebung 1 nach oben: e2πify = zy • Verschiebung 1 nach unten: e−2πify = zy−1 Abbildung 3: Verlauf des Binomialfilters Der Filterkern für eine Verschiebung nach rechts unten lautet die z-Transformierte H(zx , zy ) = zx−1 zy−1 und der Filterkern sieht so aus: Der Binomialfilter ist ein sehr guter, einfacher Tiefpassfilter. Er trennt Orts- und Frequenzbereich ideal auf. 1 0 0 0 0 0 0 0 0 Die Impulsantwort des Filters lautet: 0 0 0 6.2 0 0 0 0 0 1 FIR-Filter Einfachste Form von Filtern, die Impulsantwort ist endlich. Steht für Finite-Impulse-Response. Ein Filterkern kann einfach gebildet werden, indem man in die n-te Spalte des Pascalschen Dreiecks schaut und die Koeffizienten in die erste Zeile und Spalte schreibt, die restlichen Elemente ergeben sich durch kreuzweise Produktbildung. Der Filterkern muss immer eine ungerade Anzahl Elemente pro Richtung haben. Für einen Binomialfilter mit einer Impulsantwort der Länge 5 ergibt sich der Filterkern: 1 4 6 4 1 4 16 24 16 4 6 24 36 24 6 4 16 24 16 4 1 4 6 4 1 5 Zusammenfassung BV1 6.2.2 Seite 6 Hochpassfilter Anstatt einen Hochpassfilter zu entwickeln, kann man ganz einfach das Bild einer Tiefpassfilterung unterziehen und anschließend vom Original abziehen. So erhält man ein hochpassgefiltertes Bild. Das nennt man dann Unsharp Masking. 7 IIR-Filter und rekursive Filter Abbildung 5: IIR-Filter mit verschiedenen Faktoren Obwohl FIR-Filter sehr gute Eigenschaften besitzen, sind sie bei höheren Ordnungen sehr aufwendig zu berechnen, da jeder Filterwert gleichzeitig berechnet wird. Im Gegensatz dazu stehen die rekursiven, oder Infinite-Response-Filter. Man geht dabei über das Bild und zieht vom aktuellen Wert die gewichtete Summe der zuletzt berechneten Werte ab. Wählt man a < 0, erhält man einen Tiefpass. Für a > 0, erhält man einen Hochpass. Für |a| > 1 funktioniert das Verfahren nicht. Pro Punkt hat man nur eine Multiplikation und Addition. Die Impulsantwort lautet (−a)k . Invertieren kann man einen IIR-Filter nicht einfach, da man dann zwei Filter hintereinander ausführen müsste. Dazu falten sich die Impulsantworten und werden noch breiter. Für die Invertierung müssten sie aber schmaler werden. 7.0.1 Abbildung 4: Blockdiagramm eines IIR-Filter Für das eindimensionale IIR-Filter im Bild erhält man die Übertragungsfunktion: Rechteckfilter Der Rechteckfilter ist üblicherweise als FIR-Filter implementiert, kann aber auch rekursiv implementiert werden. Er dient auch zur Tiefpassfilterung und hat gegenüber dem Binomialfilter sowohl Vor- als auch Nachteile: Vorteile: • Als FIR-Filter wird nur eine Multiplikation benötigt • ist auch rekursiv implementierbar yk = xk − n X Nachteile: aj yk−j (10) j=1 In Schreibweise der z-Transformierten landet der Term e−2πif im Nenner. Für zweidimensionale Filter lautet die Übertragungsfunktion dann: 1 1 + a2 + 2acos(2πf ) • Bei rekursiver Implementierung geht der zuletzt berechnete Wert voll mit ein. Sind bis dahin Rechenfehler entstanden summieren sich diese komplett auf. • Dadurch eigentlich nur bei Ganzzahlvariablen sinnvoll. 1 H(f ) = az + (1 + a2 ) + az −1 = • Übertragungsverhalten deutlich schlechter als Binomialfilter, siehe Plot. (11) 6 Zusammenfassung BV1 Seite 7 Übertragungsfunktion ist das diskrete Äquivalent der sinc-Funktion: Abbildung 6: Übertragungsverhalten des Rechteckfilter 8 Der Betrag des Gradienten ist unabhängig von Bilddrehung und damit von der Orientierung der Bildstrukturen. Sehr vorteilhaft, da so Strukturen in jeder Richtung gefunden werden können. Deswegen ist ||∇I|| oft die Grundlage für Kantendetektoren. Der eine Vektor ist die Ableitung in x- und der andere in y-Richtung. Der Gradient zeigt in die Richtung der stärksten Helligkeitsänderung und die Stärke der Kante ist durch den Betrag gegeben. Einfacher Kantendetektor sucht nach Stelle an der Betrag des Gradienten größer als ein bestimmter Schwellwert ist. Der Betrag√wird nach dem Satz des Pythagoras bestimmt( a2 + b2 ). Durch Quadrierung des Schwellwertes kann man die komplizierte Wurzelberechnung umgehen und die Formel lautet: δ δ f (x, y))2 + ( f (x, y))2 > T 2 δx δy (14) Die Richtung des Vektors erhält man durch: ||∇f (x, y)||2 = ( Detektion von Kanten und Linien Unterschieden werden: δ δy f (x, y) δ δx f (x, y) (15) Da die Kante orthogonal dazu verläuft erhält man diese durch φ + π2 . • Kante(edge): Grenze zwischen Flächen • Linie(line): eindimensionale Struktur, die sich deutlich von der Umgebung unterscheidet • Ecke(corner): Punkt an dem Kanten/Linien unterschiedlicher Richtung aneinander stoßen. 8.1 tan(φ) = Gradientenbasierte Kantendetektion Im Analogen könnte man die Ableitung entlang einer Zeile/Spalte anschauen, dort wo die Ableitung positiv ist, steigt die Intensität im Bild an. Wenn negativ, dann fällt sie. Je steiler, desto eher handelt es sich um eine Kante. Im Diskreten kann man eine Tangente an der Stelle u anlegen und die Steigung betrachten. 8.2 Bekannte Kantenfilter Die Ableitungsfilter in x- und y-Richtung haben die Filterkerne: 0 0 0 0 −1 0 dx = 21 −1 0 1 und dy = 12 0 0 0mit 0 0 0 0 1 0 den Ableitungsoperatoren Dx (fx , fy ) = 12 (zx − zx−1 ) und Dy (fx , fy ) = 12 (zy − zy−1 ) Um Rauschen zu umgehen werden die Operatoren mit Tiefpassfiltern gekoppelt. 8.2.1 Sobel-Operator Diese Ableitungskerne werden, bei dem Sobeloperator , quer zu Ableitungsrichtung geglättet. Diese Glättung wird mit dem Binomialfilter vorgenommen und man erhält die (12) Operatoren: f (u + 1) − f (u − 1) df (u) = du 2 Da man in zwei Richtungen analysieren muss 1 bildet man die partielle Ableitung und bekommt Sx (fx , fy ) = (zx − zx−1 )(zy + 2 + zy−1 ) 8 dadurch den Gradientenvektor: und δI (u, v) 1 δu Sy (fx , fy ) = (zy − zy−1 )(zx + 2 + zx−1 ) ∇I(u, v) = (13) 8 δI (u, v) δv 7 Zusammenfassung BV1 Das führt zu den Filterkernen: −1 0 1 −1 sx = 18 −2 0 2 und sy = 18 0 −1 0 1 1 8.2.2 Seite 8 −2 0 2 −1 0 1 Prewitt-Operator Der Prewitt-Operator nutzt stattdessen einen Rechteckfilter zur Rauschunterdrückung. Dadurch erhält man die Filterkerne: −1 0 1 −1 −1 −1 0 0 px = 61 −1 0 1 und sy = 16 0 −1 0 1 1 1 1 8.2.3 Erweiterungen von Sobel und Prewitt Die beiden Filter unterscheiden sich kaum, bis auf eine etwas stärkere Gewichtung der zentralen Zeile/Spalte beim Sobeloperator. Ein Nachteil beider Filter ist die Ungenauigkeit in der Bestimmung der Kantenrichtung. Verläuft die Kante schräg, kommt es durch das Pixelraster zu Fehlern. Das kann man minimieren indem man einen Tiefpassfilter, quer zur Ableitungsrichtung sucht, bei dem die Fehler minimal werden. Oder indem man zwei weitere Richtungen in die Berechnung hinzunimmt. Zum Beispiel den Sobeloperator um die Diagonalen erweitern: −2 −1 0 0 −1 −2 sr u = 81 −1 0 1 und sl y = 18 1 0 −1 0 1 2 2 1 0 Diese Operatoren nennt man Kompass-Operatoren. Daraus kann man ganze Sätze an Operatoren erstellen. Vor allem der Sobeloperator ist aber wegen seiner Einfachheit und seiner trotzdem guten Ergebnisse weit verbreitet. 8 Zusammenfassung BV1 9 Seite 9 Detektion von Ecken und Flächen 9 Zusammenfassung BV1 Seite 10 10 Die diskrete Fourier-Transformation 10 Zusammenfassung BV1 11 Seite 11 Bildkompression 11 Zusammenfassung BV1 12 Seite 12 Filterbänke 12 Zusammenfassung BV1 13 Seite 13 Abtastung 13 Zusammenfassung BV1 14 Seite 14 Änderung der Abtastung 14 Zusammenfassung BV1 15 Seite 15 Interpolation 15 Zusammenfassung BV1 16 Seite 16 Ordnungsstatistikfilter 16 Zusammenfassung BV1 17 Seite 17 Adaptive Filter 17 Zusammenfassung BV1 18 Seite 18 Morphologische Filter 18 Zusammenfassung BV1 19 Seite 19 Farbe 19 Zusammenfassung BV1 20 Seite 20 Korrespondenzanalyse 1 20 Zusammenfassung BV1 21 Seite 21 Korrespondenzanalyse 2 21
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )