Hermes Digitale Bildverarbeitung
v
Bleiben Sie einfach auf dem Laufenden: www.hanser.de/newsletter Sofort anmelden und Monat für Monat die neuesten Infos und Updates erhalten.
Thorsten Hermes
Digitale Bildverarbeitung Eine praktische Einführung
Dr.-Ing. Thorsten Hermes Universität Bremen Technologie-Zentrum Informatik Digitale Medien – Bildverarbeitung
[email protected]
Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht, auch nicht für die Verletzung von Patentrechten und anderen Rechten Dritter, die daraus resultieren könnten. Autoren und Verlag übernehmen deshalb keine Gewähr dafür, dass die beschriebenen Verfahren frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Bibliografische Information Der Deutschen Bibliothek: Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar.
Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. © 2005 Carl Hanser Verlag München Wien (www.hanser.de) Lektorat: Margarete Metzger Herstellung: Irene Weilhart Copy-editing: Manfred Sommer, München Datenbelichtung, Druck und Bindung: Kösel, Krugzell Printed in Germany ISBN 3-446-22969-8
Inhaltsverzeichnis 1 Historie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Bildgebende Verfahren . . . . . . . . . . . . . . . 2.1.1 Fotografie/Lochkamera . . . . . . . . . . 2.1.2 Ultraschall . . . . . . . . . . . . . . . . . . 2.1.3 Rontgen ¨ . . . . . . . . . . . . . . . . . . . 2.1.4 Computertomographie . . . . . . . . . . . 2.1.5 Scanner . . . . . . . . . . . . . . . . . . . 2.1.6 Entfernungsbilder . . . . . . . . . . . . . 2.1.7 Fazit . . . . . . . . . . . . . . . . . . . . . 2.2 Diskretisierung und Quantisierung von Bildern 2.2.1 Ortsauflosung ¨ . . . . . . . . . . . . . . . . 2.2.2 Grauwerte . . . . . . . . . . . . . . . . . . 2.3 Stufen der Bildverarbeitung . . . . . . . . . . . . 2.3.1 Bildvorverarbeitung . . . . . . . . . . . . 2.3.2 Segmentierung . . . . . . . . . . . . . . . 2.3.3 Merkmalsextraktion . . . . . . . . . . . . 2.3.4 Klassifikation . . . . . . . . . . . . . . . . 2.4 Zusammenfassung . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
5 5 6 7 8 9 10 10 11 12 12 13 15 15 16 17 18 18
3 Bin¨arbildverarbeitung . . . . . . . . . . . . . 3.1 Punktegruppen . . . . . . . . . . . . . . 3.2 Morphologie . . . . . . . . . . . . . . . . 3.3 Morphologische Operationen . . . . . . ¨ 3.3.1 Offnen und Schließen . . . . . . 3.3.2 Steppenbrand oder GRASSFIRE 3.3.3 Letzte Erosion . . . . . . . . . . . 3.3.4 hit-or-miss“ . . . . . . . . . . . ”
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
21 22 25 27 28 29 31 31
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
VI
Inhaltsverzeichnis
3.4
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4 Vorverarbeitung . . . . . . . . . . . . . . . . 4.1 Kontrastverbesserung . . . . . . . . . . 4.1.1 Look-Up-Table (LUT) . . . . . . 4.1.2 Histogrammtransformationen . 4.1.3 Shadingkorrektur . . . . . . . . . 4.2 Rauschunterdruckung ¨ . . . . . . . . . . 4.2.1 Morphologische Operationen . . 4.2.2 Filterbasierte Rauschminderung 4.3 Geometrische Entzerrung . . . . . . . . 4.3.1 Translation . . . . . . . . . . . . . 4.3.2 Rotation . . . . . . . . . . . . . . 4.3.3 Skalierung . . . . . . . . . . . . . 4.3.4 Kombinierte Transformationen . 4.4 Zusammenfassung . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
35 36 36 38 43 44 44 44 50 52 52 53 53 55
5 Kantendetektion . . . . . . . . . . . 5.1 Diskrete Ableitung 1. Ordnung 5.2 Kantenoperatoren . . . . . . . . 5.3 Diskrete Ableitung 2. Ordnung 5.4 Zusammenfassung . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
57 58 60 64 65
6 Texturanalyseverfahren . . . . . . . . . . . . . . 6.1 Textur . . . . . . . . . . . . . . . . . . . . . . 6.2 Statistische Verfahren . . . . . . . . . . . . . 6.2.1 Rein stochastische Verfahren . . . . 6.2.2 Punktbasierte Statistik n. Ordnung 6.2.3 Filterbasierte Verfahren . . . . . . . 6.3 Strukturelle Verfahren . . . . . . . . . . . . 6.3.1 Texelextraktion . . . . . . . . . . . . 6.3.2 Texelextraktion und Aufbauregel . . 6.4 Zusammenfassung . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
67 68 70 71 71 77 78 78 79 80
7 Segmentierung . . . . . . . . . . . . . 7.1 Kantenbasierte Segmentierung . 7.1.1 Kantenextraktion . . . . . 7.1.2 Konturpunktverkettung . 7.2 Bereichsbasierte Segmentierung .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
83 84 85 86 89
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
Inhaltsverzeichnis
7.3
7.4
VII
7.2.1 Einfaches Schwellwertverfahren . . . . . . . . . . . . 7.2.2 Optimale Schwelle . . . . . . . . . . . . . . . . . . . . 7.2.3 Allgemeine Anmerkungen zu Schwellwertverfahren Bereichswachstumsverfahren . . . . . . . . . . . . . . . . . . 7.3.1 Bereichswachstumsverfahren mit Startpunkten . . . 7.3.2 Bereichswachstumsverfahren ohne Startpunkte . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . .
8 Extraktion von Merkmalen . . . . 8.1 Geometrische Merkmale . . . 8.2 Densitometrische Merkmale . 8.3 Texturmerkmale . . . . . . . . 8.4 Farbmerkmale . . . . . . . . . 8.4.1 Farblehre . . . . . . . . 8.4.2 Farbmodelle . . . . . . 8.4.3 Color Naming System 8.5 Zusammenfassung . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
89 92 93 94 94 97 98
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
99 100 104 105 106 106 109 112 113
9 Klassifikation . . . . . . . . . . . . . . . . . . . 9.1 Auswahl von (signifikanten) Merkmalen 9.2 Gutekriterien ¨ . . . . . . . . . . . . . . . . 9.3 Klassifikation von Objekten . . . . . . . . 9.3.1 Bayes’scher Klassifikationsansatz . 9.3.2 Diskriminantenfunktionen . . . . 9.3.3 Distanzfunktionen . . . . . . . . . 9.4 Zusammenfassung . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
115 117 118 120 121 123 126 128
10 Bewegungsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . 10.1 Bewegungsbestimmung durch Grauwertver¨anderungen 10.2 Blenden- und Korrespondenzproblem . . . . . . . . . . . 10.3 Zuordnungsverfahren . . . . . . . . . . . . . . . . . . . . 10.3.1 Merkmalsbasierte Verfahren . . . . . . . . . . . . 10.3.2 Block-matching-Verfahren . . . . . . . . . . . . . . 10.4 Bewegungsbestimmung durch Differentielle Verfahren . 10.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
129 130 133 134 134 135 136 139
11 Fouriertransformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 11.1 1D-Fouriertransformation in komplexer Notation . . . . . . . . . . 147 11.2 2D-Fouriertransformation . . . . . . . . . . . . . . . . . . . . . . . . 149
VIII
Inhaltsverzeichnis
11.3 Darstellung von Bildern im Ortsfrequenzbereich . . . . . . . . . . . 151 11.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 A Das O RASIS 3D -System . . . . . . . . . . . . . . . . . . . . ¨ A.1 Uberblick uber ¨ die O RASIS 3D -Arbeitsumgebung . . A.2 Anzeigekomponente . . . . . . . . . . . . . . . . . . A.3 Funktionsentwicklung . . . . . . . . . . . . . . . . . A.3.1 IDE Set-Up . . . . . . . . . . . . . . . . . . . A.3.2 Erstellen einer ExampleDLL . . . . . . . . . A.3.3 Schnittstellen erstellen mit dem Integrator“ ”
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
157 158 161 163 164 166 168
B Ausgew¨ahlte Funktionen im O RASIS 3D -System B.1 Bildkonvertierungen . . . . . . . . . . . . . B.2 Histogrammebnung . . . . . . . . . . . . . B.3 Mittelwertfilter . . . . . . . . . . . . . . . . B.4 Medianfilter . . . . . . . . . . . . . . . . . . B.5 Simple-Edge-Kantenoperator . . . . . . . . B.6 Laplace-Operator . . . . . . . . . . . . . . . B.7 Merkmalsberechnung . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
173 174 177 182 184 186 188 191
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
¨ C Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 C.1 Aufgabe 1: Erstellung eigener Funktionen fur ¨ O RASIS 3D mit Borland C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 C.2 Aufgabe 2: Bin¨arbildverarbeitung und morphologische Operationen 200 C.3 Aufgabe 3: Grauwertbildverarbeitung – Bildpunktoperationen . . . 202 C.4 Aufgabe 4: Kanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 C.5 Aufgabe 5: Texturen I . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 C.6 Aufgabe 6: Texturen II . . . . . . . . . . . . . . . . . . . . . . . . . . 208 C.7 Aufgabe 7: Farbbildverarbeitung und Segmentierung . . . . . . . . 210 C.8 Aufgabe 8: Kontur-Rekonstruktion und Segmentierung . . . . . . . 212 C.9 Aufgabe 9: Merkmalsextraktion . . . . . . . . . . . . . . . . . . . . . 214 C.10 Aufgabe 10: Klassifikation / Objekterkennung . . . . . . . . . . . . 216 C.11 Aufgabe 11: Bewegungsanalyse / Verschiebungsvektoren . . . . . . 217 C.12 Aufgabe 12: Fourieranalyse . . . . . . . . . . . . . . . . . . . . . . . 218 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Vorwort Digitale Bildverarbeitung ist das, was im englischsprachigen Raum am ehesten mit dem Begriff Computer Vision bezeichnet wird. Dabei geht es um die rechnergestutzte ¨ Verarbeitung von digitalen Bildern letztendlich zum Zweck der Auswertung bzw. Interpretation der visuellen Information. Um ein Bild zu interpretieren, sind typischerweise verschiedene aufeinander aufbauende Schritte notwendig: Zun¨achst einmal sollte das Bild irgendwie digitalisiert werden, d.h., dass es durch ein so genanntes bildgebendes Verfahren bearbeitbar“ fur ¨ den Rechner ” gemacht werden muss. Ist die Bildgebung aus welchen Grunden ¨ auch immer unzul¨anglich, dann muss das Bild in irgendeiner Form verbessert werden. Die Verbesserung erfolgt im Rahmen der Vorverarbeitung. Wurde das Bild verbessert, dann erfolgt in der Regel eine Unterteilung des Bildes in Strukturen, die fur ¨ eine weitere Verarbeitung von Interesse sind, und in Strukturen, die nicht weiter betrachtet werden. Dieser Schritt wird ganz allgemein Segmentierung genannt. Anschließend kann fur ¨ eine solche Partition des Bildes sinnvoll nach signifikanten Merkmalen gesucht werden, die mittels eines Klassifikationsverfahrens auf Klassen/Kategorien abgebildet werden. Die Kategorien dienen dann als Grundlage der Interpretation des Bildes. Die angefuhrten ¨ einzelnen Schritte sind Teilgebiete der digitalen Bildverarbeitung und werden, bis auf den letzten Schritt, in diesem Buch behandelt. Oftmals werden die Teilgebiete bis einschließlich Segmentierung auch als low-level-vision bezeichnet, und die letzten auch als high-level-vision. Dieses Buch versucht, einen einfachen und praktischen Einstieg in die in diesem Buch behandelten Gebiete der digitalen Bildverarbeitung, zu vermitteln. Dabei geht es vordergrundig ¨ um den einfachen Einstieg. Es wird jeweils fur ¨ die einzelnen Gebiete weiterfuhrende ¨ Literatur referenziert, sodass der interessierte Leser hier seinen Wissensdurst stillen kann. Dieses Buch soll das Interesse des Lesers an der digitalen Bildverarbeitung wecken, wobei die auf der CD befindliche Softwa¨ unterstutzend ¨ wirken sollen. re O RASIS 3D und die praktischen Ubungsaufgaben Das Buch richtet sich nicht nur an Studierende der Informatik, sondern auch an Studierende anderer naturwissen- und ingenieurswissenschaftlicher Fachrichtungen, die einen einfachen und praktischen Einstieg in die digitale Bildverarbeitung suchen. Hinsichtlich der Funktionsentwicklung von eigenen Bildverarbeitungsroutinen im Zusammenspiel mit O RASIS3D ist Erfahrung sowohl im Umgang mit
X
Vorwort
IDEs als auch in der Entwicklung von C/C++-Programmen die wesentliche Voraussetzung. Zur Software ist zu sagen, dass sie ursprunglich ¨ nicht fur ¨ den Einsatz in der Lehre gedacht war. Sie hat sich dort im Laufe der Jahre aber zu einem guten Instrument entwickelt. O RASIS3D wird seit einigen Jahren in unserem Institut sowohl in der Lehre als auch fur ¨ prototypische Entwicklungen eingesetzt. Ursprunglich ¨ war sie als performantere Alternative zu Systemen wie Matlab gedacht, da wir in unserem Institut ein besonderes bildgebendes System – eine Kamera, die entfernungs- und pixelidentische Grauwertbilder liefert – haben. Diese Kamera speichert die Bilder in einem speziellen 16-Bit-Format ab, was zur damaligen Zeit keine kommerzielle oder universit¨are Bildverarbeitungssoftware unterstutzte. ¨ Zun¨achst wurde Matlab verwendet, da Matlab zumindest teilweise in der Lage war, die Bilder zu behandeln. Dies stieß aber auf Grenzen, insbesondere dann, wenn Performance gefragt war. So blieb uns nichts anderes ubrig, ¨ als ein eigenes System zu entwickeln und zu implementieren. Das Ergebnis dieser Entwicklung ist das mitgelieferte O RASIS 3D -System. Die beiliegende Software ist eine Entwicklung der Universit¨at und sollte auch als solche verstanden und verwendet werden. Sie ist mit keinem kommerziellen Bildverarbeitungssystem zu vergleichen. Demzufolge konnen ¨ hinsichtlich Robustheit und aller anderen Eigenschaften, die an kommerzielle Software zu stellen sind, nicht die gleichen Qualit¨atsanspruche ¨ gestellt werden. Es kann auch keine Haftung fur ¨ evtl. Sch¨aden, die durch den Gebrauch von ¨ ubernommen ¨ werden. Des Weiteren kann auch kein O RASIS 3D entstehen konnten, Support, wie bei kommerzieller Software ublich, ¨ geleistet werden. Fur ¨ Anregungen oder Bemerkungen sind wir trotzdem dankbar. Sie konnen ¨ sie uns per E-Mail unter
[email protected] ubermitteln. ¨ An dieser Stelle mochte ¨ ich allen Personen, die zum Entstehen des Buches sowie der Software beigetragen haben, danken. In alphabetischer Reihenfolge sind das: Hinnerk Becker, Karl Catewicz, Otthein Herzog, Andreas Hoppe, George Ioannidis, Andrea Miene und Andreas Winter. Ein ganz besonderer Dank geht an meine Frau Bettina und meine Tochter ¨ Lena und Sarah sowie an meine Eltern. Bei allen, die ich vergessen habe, mochte ¨ ich mich hiermit entschuldigen. Fuhlt ¨ Euch trotzdem bedankt.
Hamburg, Bremen im Januar 2005
Thorsten Hermes
Kapitel 1
Historie ¨ In diesem Kapitel wird ein kurzer Uberblick uber ¨ die Entwicklung des Fachgebietes Bildverstehen gegeben. Damit soll deutlich werden, dass das Thema Bildverstehen keine neuartige Modeerscheinung ist, sondern dass das Thema Bildverstehen schon ein sehr altes“ Thema ist. Alt, wenn wir von den Anf¨angen der heutigen ” Informatik – Ende der 40er/Anfang der 50er Jahre – ausgehen. Wir sprechen von Bildverstehen und meinen die automatische Analyse und Interpretation von visueller Information. Die wesentlichen Fragen fur ¨ das Forschungsgebiet Bildverstehen sind beispielsweise zum jetzigen Zeitpunkt Wie k¨onnen die F¨ahigkeiten biologischer Sehsysteme maschinell abgebildet werden? und K¨onnen Algorithmen gefunden werden, die genau diese Abbildung leisten? Eine weitere wesentliche Frage, die seit Beginn des Forschungsgebietes besteht, ist die Frage nach der Losung ¨ technischer Probleme durch maschinelle Sehsysteme. Bildverstehen ist ein Teilgebiet der Kunstlichen ¨ Intelligenz (KI) (s.a. Winston (1993)). Seit ca. einem halben Jahrhundert existiert dieses Forschungsgebiet. Es z¨ahlt auch heute noch zu den schwierigsten Teilgebieten der KI aufgrund der immer noch offenen Fragen. Es ist den Forschern bisher noch nicht gelungen, ein technisches Sehsystem zu realisieren, das auch nur ann¨ahernd die Leistungen eines biologischen erreicht, beispielsweise des Sehsystems in Primatengehirnen. Nicht zuletzt die Tatsache, dass es immer noch keine einheitliche Terminologie gibt und dass daruber ¨ hinaus mehrere, wenn schon nicht Paradigmenwechsel, so doch zumindest Sichtweisen¨anderungen bezuglich ¨ des Forschungsgebiets vollzogen wurden, bildet die Ursache fur ¨ einen bisher unbefriedigenden Stand der Forschung (vgl. Neumann (1995)). Ebenso ist die Komplexit¨at von biologischen Sehsystemen und die erst in den Anf¨angen entschlusselte ¨ Analyse der Funktionsweisen dieser biologischen Sehsysteme ein weiterer Grund. Auch die enorme Rechenleistung, die benotigt ¨ wird, um den gewaltigen Informationsfluss von Bildfolgen in Echtzeit zu verarbeiten, ist noch heute ein Grund fur ¨
2
1 Historie
die angesprochenen Unzul¨anglichkeiten von maschinellen Sehsystemen. Auf der anderen Seite l¨asst sich aber feststellen, dass fur ¨ spezielle Anwendungen durchaus erfolgreiche maschinelle Sehsystemlosungen ¨ existieren. Als Beispiel sei hier die Steuerung von autonomen Fahrzeugen genannt, wie sie im PROMETHEUSProjekt angestrebt wurde (Franke (1989)). Die bereits oben angesprochenen Paradigmenwechsel bzw. Sichtweisen¨anderungen wurden nicht von allen Forschern in gleicher Weise vollzogen, sodass ein Nebeneinander verschiedener konzeptueller Sichten die Gliederung des Fachgebietes sehr erschweren. Bevor wir uns in diesem Buch auf die Inhalte der Bildverarbeitung konzentrieren, geben wir im Folgenden einen chronologischen Abriss der Entwicklung des Gebietes und stellen dabei die einzelnen Sichtweisen kurz dar. Chronologischer Abriss In den Anf¨angen formulierte Selfridge (Selfridge (1955)) die Vision von Augen und Ohren fur ¨ Rechner. Zun¨achst besch¨aftigte man sich mit der Aufbereitung von Luftbildern (geometrische Entzerrung) und mit weiteren Bildmanipulationen, die insbesondere fur ¨ milit¨arische Anwendungen von Interesse waren. Diese Aufgaben wurden auch als klassische“ Bildverarbeitung (image processing) bezeichnet. Zei” chenerkennung gerade von handgeschriebenen Zeichen war zun¨achst die bevorzugte Anwendungsdom¨ane der Objekterkennung, wobei die Objekte die einzelnen Buchstaben waren. Dieses fuhrte ¨ zum Paradigma der Mustererkennung (pattern recognition). In Abbildung 1.1 wird eine schematische Darstellung dieses Paradigmas wiedergegeben. Das Paradigma steht fur ¨ den gesamten Analyseprozess vom (digitalen) Bild (mit potenzieller Vorverarbeitung) uber ¨ eine anschließende Segmentierung. Basierend auf dieser Segmentierung erfolgt eine sinnvolle Extraktion von signifikanten Merkmalen. Die Klassifikation anhand der zuvor extrahierten Merkmale von Bildstrukturen in Klassen bildet den letzten Schritt im Analyseprozess. Letzteres kann auch – im weitesten Sinne – als Objekterkennung bezeichnet werden. Die grundlegende Frage der Mustererkennung ist die Einordnung von Objekten in Klassen. Ein Objekt1 wird im Allgemeinen durch einen Merkmalsvektor be¨ schrieben. Mittels diese Merkmalsvektors kann ein Abstands- oder Ahnlichkeits¨ maß bestimmt werden. Anhand dieses Abstands- oder Ahnlichkeitsmaßes wird dann der Merkmalsvektor (und somit das Objekt) im Normalfall einer Klasse zugeordnet. So konnen ¨ beispielsweise Objekte erkannt“ werden. Klassifikation2 ” ist in weiten Teilen verstanden, und fur ¨ spezielle Anwendungsdom¨anen (uber¨ schaubare Anzahl von Klassen, eindeutiger Merkmalsvektor, signifikante Merk1 Streng genommen kann an dieser Stelle noch nicht von einem Objekt gesprochen werden. Durch die Klassifikation soll das Objekt als solches ja erst bestimmt werden. Besser ist es, in dem Fall von Bildstruktur o.¨a. zu sprechen. Aufgrund des allgemeinen Sprachgebrauchs wollen wir jedoch bei Objekt bleiben. 2 Einen ausfuhrlichen ¨ ¨ Uberblick uber ¨ Klassifikationsverfahren kann der Leser in Duda und Hart (1973); Duda u. a. (2001) oder in Niemann (1983) finden.
3
B ild m it S tr u k tu r
S M
e g m e n t ie r u n g & e r k m a ls e x t r a k t io n
B
B
5 1 x = [1 ,5 ]
M e r k m a ls v e k to r
x
K
M
e r k m a ls r a u m la s s if ik a t io n
&
1
"E " n ic h t " E "
x
O b je k tk la s s e
2
Z u k la s s ifiz ie r e n d e S tr u k tu r is t e in " E "
Abbildung 1.1: Paradigma: Mustererkennung (vereinfacht!). Nach Neumann (1995)
male) existieren praktische Anwendungen. Dieses Konzept trug aber nur bedingt Fruchte. ¨ Eine auf Klassifikation beschr¨ankte Objekterkennungslosung ¨ kann fur ¨ eine Losung ¨ in der realen dreidimensionlen Welt mit vielen Strukturen kaum ausreichend sein. Ebenso ist die inh¨arente Zweidimensionalit¨at der Zeichenerkennung eine zu große Einschr¨ankung des Problemraumes. Eine der Kernaufgaben des Fachgebietes ist die Rekonstruktion von dreidimensionaler Information aus zweidimensionalen Bildern. Der erste Paradigmenwechsel wurde durch Roberts (Roberts, 1965) mit der Analyse von Polyederszenen – in der so genannten Blockswelt – eingeleitet. Szenen aus der Blockswelt wurden daraufhin haupts¨achlicher Analysegegenstand der Forschung. Hierbei verschob sich das Hauptaugenmerk von der Objekterkennung auch hin zur Objektbeschreibung bzw. von der Klassifizierung hin zur geometrischen Beschreibung. Ebenso wurde den Wissenschaftlern deutlich, dass das Verst¨andnis von Realwelteigenschaften wesentlich zum Bildverstehensprozess beitragen konnte. Fur ¨ die Probleme innerhalb der Blockswelt bedeutet dies, dass Polyederkanten (Objektkanten) gewissen Gesetzm¨aßigkeiten der Realwelt genugen ¨ mussten. In diesem Zusammenhang kann die Arbeit von Waltz (Waltz, 1975) durchaus als Meilenstein angesehen werden: Er stellte ein Kantenmarkierungsverfahren vor, welches in der Lage ist, Kanten (innerhalb der Blockswelt) als konvexe oder konkave Kanten, als Verdeckungs- oder Schattenkanten einzuordnen. Etwa zur gleichen Zeit (Mitte der 70er Jahre) kamen Bildfolgen in den Fokus der
4
1 Historie
Untersuchungen. Dies war nunmehr moglich, ¨ da sich die Hardware zunehmend verbesserte. Zun¨achst wurden die neu gewonnenen Informationen ausschließlich zur Verbesserung der Segmentierung genutzt, also zur Trennung der sich bewegenden Bildbereiche vom Bildhintergrund. Erst sehr langsam und somit sehr viel sp¨ater kam man zur Einsicht, dass die allgemeine Sehaufgabe sehr wohl etwas mit zeitver¨anderlichen Szenen zu tun hat und dass die Information aus dem Zeitkontext durchaus die unterschiedlichen Beschreibungsebenen unterstutzen ¨ kann. Diese neuen Moglichkeiten ¨ motivierten die Wissenschaftler, sich immer mehr an Realweltszenen zu versuchen“. Die Realwelt stellte sie allerdings vor eine Viel” falt neuer Gegebenheiten (Ph¨anomene) und somit vor neue Probleme. Man fand heraus, dass eine Polyederbeschreibung von Straßenverkehrsszenen nicht mehr ausreichend war, oder genauer: man konnte mittels Polyeder eine solche Szene nicht mehr beschreiben. Ebenso waren nun fast unkontrollierbare Beleuchtungseffekte zu beobachten, etc. Weitere Dom¨anen der Realwelt waren (und sind) Landschaftsszenen, Satellitenaufnahmen, Luftbilder u.a. Den n¨achsten Meilenstein stellten die Arbeiten von David Marr und Kollegen dar. In seinem Buch Vision (Marr, 1982) beschrieb Marr einen kognitiv orientierten und biologisch motivierten Ansatz, der ein hierarchisches Rahmenkonzept fur ¨ Sehsysteme darstellte. Wesentlich an diesem Ansatz sind zum einen die verschiedenen Abstraktionsebenen und die Motivation aus der Biologie. Einige Postulate dieser Arbeit stellten sich als nicht haltbar heraus, da sie u.a. mit den biologischen Gegebenheiten nicht ubereinstimmten, ¨ allerdings fuhrten ¨ die Arbeiten dazu, dass man sich in der Folgezeit in starkem Maße an kognitiven Prozessen orientierte. Den zur Zeit letzten großen Impuls fur ¨ das Fachgebiet stellen die Anfang der 90er Jahre erschienenen Arbeiten uber ¨ die so genannte active vision dar. Insbesondere die Arbeiten von Bajcsy (Baijcsy, 1988) und Aloimonos (Aloimonos, 1993), die einen aktiv handelnden Agenten als Sehsystem in ihre Modellierungen mit einbeziehen, sind hier von richtungsweisender Charakteristik. Des Weiteren kommen hier auch konnektionistische Modellbildungen3 zum Tragen. Man sieht deutlich, dass es eine Reihe von richtungsweisenden Arbeiten im Fachgebiet gegeben hat, und es bleibt zu vermuten, dass es noch weitere geben wird. Betrachtet man die anwendungsorientierte Seite, l¨asst sich feststellen, dass es durchaus eine Vielzahl von bereits existierenden Systemen gibt, die zufriedenstellend die ihnen zugedachten Aufgaben mittels Bildverarbeitungsmethoden losen. ¨ Auf der anderen Seite l¨asst sich aber ebenso deutlich erkennen, dass der Entwicklungsaufwand fur ¨ neue Systeme sehr groß ist. Das ist nicht zuletzt darauf zuruckzuf ¨ uhren, ¨ dass noch keine Art von Konstruktionslehre fur ¨ Sehsysteme existiert. Man kann auch sagen, dass noch kein Rezeptbuch“ existiert, in dem man nachschlagen kann, um eine ” Anleitung fur ¨ den Aufbau eines Sehsystems zur Losung ¨ einer bestimmten Aufgabe zu finden. 3
Das Paradigma des Konnektionismus besagt, dass eine große Anzahl einfacher Einheiten (Neurone) durch Interaktion (anregende und hemmende Signale) Informationsverarbeitung betreiben“. Eine ” sehr anschauliche und ausfuhrliche ¨ Einfuhrung ¨ l¨asst sich in Zell (1994) oder in Rojas (1993) finden.
Kapitel 2
Grundlagen ¨ In diesem Abschnitt wird ein Uberblick uber ¨ eine Auswahl an bekannten und g¨angigen bildgebenden Verfahren gegeben, um deren Vielfalt anzudeuten. Dabei wird zun¨achst das Prinzip der Lochkamera erl¨autert. Dieses Prinzip liegt sehr vielen Kamerasystemen zu Grunde. Weiterhin wird in Abschnitt 2.2 auf die Problematik der Diskretisierung und Quantisierung eingegangen. Im Anschluss wird ¨ in Abschnitt 2.3 ebenfalls ein Uberblick uber ¨ die ublichen ¨ Stufen eines Bildverarbeitungssystems von der Bildvorverarbeitung bis hin zur Klassifikation gegeben. Diese Stufen lehnen sich an das Mustererkennungsparadigma an. Die nachfolgenden Kapitel dieses Buches bzw. die in den folgenden Kapiteln beschriebenen Methoden/Verfahren lassen sich großtenteils ¨ in dieses Schema einteilen. Es wird versucht, immer – wenn moglich ¨ – einen Hinweis auf die jeweilige Stufe innerhalb des Bildverarbeitungsprozesses zu geben.
2.1 Bildgebende Verfahren Grob lassen sich die bildgebenden Verfahren in Abh¨angigkeit der Bildgebung in so genannte passive und aktive Verfahren unterscheiden. Bei den passiven Verfahren (oder Sensoren) wird in der Regel das von Oberfl¨achen reflektierte Licht aufgenommen. Die aktiven Verfahren zeichnen sich dadurch aus, dass eine Art Messsignal (Schallwelle, Laser, Rontgen ¨ usw.) ausgesendet und beispielsweise die Zeit von der Emission bis zur Wiederkehr gemessen und auf diese Weise die Entfernung zwischen Objekt und Bildebene ermittelt wird. Das ist grob das Prinzip einer Entfernungsbildkamera. Bei Rontgen ¨ ist das Prinzip etwas anders. Hier wird zwar auch ein Messsignal (Rontgenstrahlen) ¨ ausgesendet, doch misst man hier die Absorption der Strahlen, die ein Objekt durchqueren.
6
2 Grundlagen
2.1.1 Fotografie/Lochkamera Die herkommliche ¨ Fotografie basiert in vielerlei Hinsicht auf den Prinzipien der Lochkamera. Der wesentliche Unterschied ist, dass die Lochkamera bzw. de¨ ren Objektiv“ keine Linse aufweist. Stattdessen besitzt sie eine sehr kleine Off” nung (das Pinhole“). Durch dieses Loch wird das Bild auf eine lichtempfindliche ” Schicht (Film oder Papier) projiziert. Diese Vorgehensweise erfordert eine andere Arbeitsweise mit der Lochkamera als beispielsweise mit einer Spiegelreflexkamera, haupts¨achlich weil die Belichtungszeiten sehr lang werden. Ebenso unterscheiden sich die erzeugten Bilder von Aufnahmen mit einer ublichen ¨ Kamera: Eine Linse erzeugt ein Bild dadurch, dass sie alle auf sie treffenden Lichtstrahlen von jedem Punkt des Aufnahmeobjekts in einem gemeinsamen Brennpunkt vereinigt. Im Gegensatz dazu erzeugt das Loch einer Lochkamera uberhaupt ¨ keinen Brennpunkt. Im Idealfall ist das Loch ein Punkt, sodass von jedem Punkt des Objekts lediglich ein Lichtstrahl das Loch passieren konnte. ¨ Dieser Lichtstrahl tr¨afe den Film naturlich ¨ ebenfalls nur in einem Punkt. Ein Lichtstrahl von einem anderen Punkt des Objekts wurde ¨ damit auch den Film an einem anderen Punkt treffen. Die Summe aller durch das Loch einfallenden Strahlen wurde ¨ so ein exaktes Abbild des Objekts auf dem Film erzeugen. Wurde ¨ man die Filmebene voroder zuruckbewegen, ¨ bliebe das Bild unver¨andert, lediglich seine Große ¨ wurde ¨ sich abh¨angig von der Entfernung zum Loch a¨ ndern.
Abbildung 2.1: Prinzip der Lochkamera
Fur ¨ die reale Umsetzung ist das Loch naturlich ¨ niemals nur ein Punkt. Daraus ergibt sich, dass von jedem Punkt des Aufnahmeobjekts mehrere Lichtstrahlen das Loch“ passieren und auf die lichtempfindliche Schicht treffen. Die Streuung ” der Lichtstrahlen h¨angt von der Große ¨ des Lochs ab. Dies ist unter anderem ein Grund fur ¨ die Unsch¨arfe (auch: Weichheit) der Aufnahmen mit der Lochkamera. Ein weiterer Grund ist, dass an den Lochr¨andern Beugungserscheinungen auftreten. Die dort passierenden Lichtstrahlen werden aus ihrer Bahn gelenkt. Da es keinen Brennpunkt gibt, wird eine Lochkameraaufnahme uber ¨ das gesamte Bildfeld gleichm¨aßig (un)scharf1. Dadurch gibt es keine Beschr¨ankung der Tiefensch¨arfe wie bei der Fotografie mit Hilfe von Linsen. Sehr nahe Objekte (Entfer1
Die Sch¨arfe des Bildes kann ge¨andert werden, indem die Große ¨ des Lochs ver¨andert wird. Je kleiner
2.1 Bildgebende Verfahren
7
nung Objekt–Loch kleiner als Entfernung zwischen Loch und Film) werden allerdings aufgrund der Divergenz der von jedem Punkt des Objekts eintreffenden Lichtstrahlen unsch¨arfer abgebildet.
2.1.2 Ultraschall Als Ultraschall bezeichnet man alle mechanischen Schallwellen mit Frequenzen oberhalb 20 kHz. Im Gegensatz zu den elektromagnetischen Wellen sind mechanische Schwingungen an ein elastisches Medium gebunden. Die Ultraschallmesstechnik kommt in der zerstorungsfreien ¨ Materialprufung ¨ zum Einsatz. Beispielsweise findet diese Technik in der Glasindustrie Anwendung. Ultraschall kann zur Bestimmung sog. isotroper Glaseigenschaften, wie der Schallausbreitungsgeschwindigkeit, verwendet werden. Auch l¨asst sich Ultraschall auch zur Detektion von lokalen Glasfehlern (Blasen, Schlieren, Rissen) einsetzen. Ebenfalls ist die Messung der Dicke von Flachglas moglich. ¨ Mittels der Ultraschallprufung ¨ l¨asst sich Verbundsicherheitsglas von Einscheibenglas vor Ort unterscheiden. Insbesondere ist das sinnvoll, wenn Glasscheiben gerahmt oder eingebaut und somit nur einseitig zug¨anglich sind und eine zerstorende ¨ Prufung ¨ vermieden werden soll. Fur ¨ die Materialprufung ¨ kommt der Bereich von 0.25 bis 10 MHz mit Wellenl¨angen der Großenordnung ¨ von einigen Millimetern in Frage. Festgestellt werden Materialfehler wie Risse. Mit hoheren ¨ Frequenzen (bis maximal 120 MHz je nach Einsatzzweck) lassen sich auch spezielle Gefugeuntersu¨ chungen durchfuhren. ¨
Abbildung 2.2: Bild eines Fotus. ¨ Man erkennt die vordere Sch¨adelwolbung ¨ und grobe Strukturen des Gesichtes (Nase). Gescannt mit 300 dpi (dot per inch)
Ein weit großeres ¨ Einsatzfeld der Ultraschallmesstechnik ist die medizinische Diagnostik. Schallwellen werden im Korper ¨ des Patienten je nach Gewebeart absordas Loch ist, desto sch¨arfer ist das Bild. Es ist allerdings auch dunkler. So kann man nie ein Bild erzeugen, das gleichzeitig hell und scharf genug ist. Das ist auch der Grund, dass das Loch sp¨ater durch eine Linse ersetzt wurde, die das Licht bundelt ¨ und gleichzeitig genug Helligkeit durchl¨asst.
8
2 Grundlagen
biert oder reflektiert. Der Schallkopf kann die reflektierten Schallwellen wiederum empfangen. Er wirkt also gleichzeitig als Schallsender und Schallempf¨anger. Dabei werden die reflektierten Schallwellen in elektrische Impulse verwandelt, verst¨arkt und in der Regel auf einem Bildschirm dargestellt. Dadurch erh¨alt man zweidimensionale Bilder, die eine r¨aumliche Vorstellung von Große, ¨ Form und Struktur der untersuchten Organe, Weichteilgewebe und Gef¨aße ermoglichen. ¨ Durch ein besonderes Verfahren, der so genannten Doppler-Sonographie und der Farb-Doppler-Sonographie, erh¨alt man zus¨atzliche Informationen uber ¨ die Stromungsrichtung, ¨ -geschwindigkeit und -st¨arke des Blutflusses in den Gef¨aßen. Ein Beispiel fur ¨ ein Ultraschallbild ist in der Abbildung 2.2 dargestellt.
2.1.3 Rontgen ¨
Abbildung 2.3: Rontgenbild ¨ eines Ausschnittes einer menschlichen Wirbels¨aule. Man erkennt deutlich, dass die harten Strukturen (Knochen) gut abgebildet werden, hingegen die weichen Strukturen (zum Beispiel Fett- bzw. Muskelgewebe) sich nicht abbilden. Gescannt mit 300 dpi (dot per inch)
Rontgenstrahlen ¨ werden haupts¨achlich in der medizinischen Diagnostik eingesetzt. Insbesondere erlauben sie eine Visualisierung von harten“ Strukturen ” (Knochen). Rontgenstrahlen ¨ entstehen beim Aufprall energiereicher Elektronen auf ein Material (Metall). Bei der Wechselwirkung mit den Atomen erfolgt eine Umwandlung der kinetischen Energie in Rontgenstrahlung. ¨ Der großte ¨ Teil (uber ¨ 99 %) der Energie wird jedoch in W¨arme umgewandelt. Die Erzeugung der 2 . Die Rontgenstrah¨ Rontgenstrahlen ¨ erfolgt vorwiegend in sog. Rontgenr ¨ ohren ¨ len werden von einer Rontgenr ¨ ohre ¨ emittiert. Ein Filter und eine Blende verhin2
Es gilt hier das Abstandsquadrat-Gesetz: Die Dosis der von einer Strahlenquelle ausgehenden Strah-
2.1 Bildgebende Verfahren
9
dern eine unkontrollierte Streuung der Strahlen. Das aufzunehmende Objekt wird durchstrahlt, und je nachdem, wie stark die Strahlen vom Objekt absorbiert wurden, treffen sie auf ein Aufzeichnungsmedium. In Abbildung 2.3 ist das Rontgen¨ bild einer Hand dargestellt.
2.1.4 Computertomographie
(a)
(b)
(c)
Abbildung 2.4: Beispiel einer CT-Bildserie. Schichtaufnahmen einer menschlichen Wirbels¨aule. Man erkennt deutlich sowohl harte als auch weiche Strukturen. Gescannt mit 300 dpi (dot per inch)
Die Computertomographie (CT) wird analog zu den Rontgenverfahren ¨ ebenso in der medizinischen Diagnostik eingesetzt. Zun¨achst wird zu Beginn einer Unter¨ suchung eine sog. Ubersichtsaufnahme erzeugt. Dazu wird der Patient bewegt, Rohre ¨ und Detektor befinden sich im ruhenden Zustand. Bei der computertomographischen Aufnahme werden dann Rohre ¨ und Detektor bewegt und der Patient befindet sich im ruhenden Zustand. Das grundlegende Prinzip der Messwertaufnahme bei der Computertomographie ist, dass nur die interessierende Objektschicht durchstrahlt wird, wobei der Rontgenstrahl, ¨ je nach Schw¨achung im Objekt, vom Detektor in ein mehr oder weniger großes elektrisches Signal umgewandelt wird. Die Schichtdicke ist der wichtigste variable Parameter bei der CTAufnahme. In der Regel betr¨agt sie zwischen 1 mm und 10 mm. Werden kleine Strukturen gesucht, so verwendet man eher eine Schichtdicke von 1 mm. Werden die zu suchenden Objekte großer, ¨ so nimmt auch die Schichtdicke zu. Gleichzeitig, mit großer ¨ werdender Schichtdicke, nimmt die Strahlenbelastung ab. Nach einer anschließenden Digitalisierung der Messwerte und der Bildrekonstruktion liegt im Computer eine Grauwertmatrix vor (vgl. Abbildung 2.4). lung verringert sich mit dem Quadrat ihrer Entfernung von der Quelle. Somit fuhrt ¨ der doppelte Abstand zu einer Dosisreduktion auf ein Viertel. Ein Detail im Strahlengang wird umso großer ¨ abgebildet, je großer ¨ sein Abstand zur Bildebene ist. Das Maß der Vergroßerung ¨ wird bestimmt durch das Verh¨altnis Fokus-Film-Abstand zum Fokus-Objekt-Abstand.
10
2 Grundlagen
2.1.5 Scanner Eín Scanner“ ist ein Ger¨at (vornehmlich) zur Digitalisierung von Bildern. Das ” bedeutet, dass Bilder, die beispielsweise in Papierform vorliegen, in eine fur ¨ den Rechner verst¨andliche Form gebracht werden. Der Scanner tastet dabei jeden Punkt des Bildes ab und schickt den Wert des reflektierten – oder bei einem Durchlichtscanner des durchgelassenen – Lichts an einen Rechner. Im Handel sind verschiedene Arten von Scannern erh¨altlich: Man unterscheidet im Allgemeinen zwischen Handscanner, Einzugsscanner, Flachbettscanner, Dia(auch Durchlichtscanner) und Fotoscanner(EPSON Deutschland GmbH (2001)). Im Profibereich (jenseits von 25 000 Euro) gibt es die so genannten Trommelscanner. Seit nicht allzu langer Zeit gibt es auch fur ¨ den Consumermarkt 3D-Scanner, bei denen das Objekt dreidimensional erfasst und im PC wiedergegeben wird. Vorher kamen 3D-Scanner eher in wissenschaftlichen und industriellen Anwendungen zum Einsatz. An Kassen in Superm¨arkten begegnet man h¨aufig Handscannern, die aus Balken und Strichen auf Etiketten (auch: Barcode, Zebracode“) den Preis ” einer Ware ablesen. Komfortabler und leistungsf¨ahiger sind hingegen die weit verbreiteten Flachbettscanner. Hierbei wird ein Original auf die Scanneroberfl¨ache (i.d.R. eine Glasscheibe) gelegt. Die Scanneroberfl¨ache wird durch eine Abdeckung vor einfallendem Licht geschutzt. ¨ Mittels einer Leuchtstoffrohre ¨ wird die Scanneroberfl¨ache ¨ und somit auch das Original angestrahlt. Uber ein Spiegelsystem wird das von dem Original reflektierte Licht auf den so genannten CCD-Chip (Charge Coupled Device) gelenkt. Dieser Chip tastet Punkt fur ¨ Punkt jede Zeile ab und ermittelt dabei die Helligkeits- und Farbwerte, die sp¨ater durch einen Analog/Digitalwandler in digitale Werte und damit Zahlen umgewandelt3 werden.
2.1.6 Entfernungsbilder Die große Reichweite von Laserstrahlen und deren hohe Ausbreitungsgeschwindigkeit sind die Grunde, ¨ den Laser in der Vermessungstechnik erfolgreich anzuwenden. Ein Entfernungsbild wird h¨aufig durch ein so genanntes Laufzeitverfahren – a¨ hnlich dem Ultraschall – gewonnen. Hierbei wird die Zeit gemessen, die von der Emission eines Lasers bis zur Wiederkehr des Lichtpuls vergeht. Eine bekannte Anwendung ist die horizontale Entfernungsmessung mit Hilfe eines Theodoliten. Ein Theodolit ist ein Winkelmessger¨at. Moderne Ger¨ate, so genannte Tachymeter, erlauben die Messung der Richtungswinkel, Entfernung und auch von Hohenunterschieden ¨ in einem Arbeitsgang. Die so gewonnenen Daten 3 Auf dem CCD-Chip befinden sich Fotozellen. Sie teilen das ankommende Licht nach dem fur ¨ optische Ger¨ate gultigen ¨ additiven Farbsystem in die Grundfarben Rot, Blau und Grun ¨ und wandeln sie in elektrische Spannung um. Diese Spannung wird an den so genannten A/D-Wandler (Analog-DigitalWandler) weitergegeben, der sie in fur ¨ den Computer lesbare digitale Daten ubersetzt. ¨
2.1 Bildgebende Verfahren
11
konnen ¨ in einem nachfolgenden Schritt in Koordinaten umgerechnet werden. In der Regel werden zur Entfernungsmessung Infrarotlaser (mit einer Wellenl¨ange von 0, 78µ m) verwendet, die der Laserklasse 1 ( augensicher“ ) entsprechen. Die ” Entfernung zwischen dem Tachymeter und einer gewunschten ¨ Stelle wird bestimmt, indem an der gewunschten ¨ Stelle ein Reflektor aufgestellt und von einem bekannten Punkt (Ort des Tachymeters) aus auf ihn gezielt wird. Aus der Laufzeit, die die elektromagnetischen Wellen benotigen, ¨ um den Weg zwischen Tachymeter und Spiegel (hin und zuruck) ¨ zu uberwinden, ¨ wird die Entfernung mit einer Genauigkeit von ±5% errechnet. Bei der so genannten Laser-Hohenmessung ¨ (auch Laser-Scanning) tastet zum Beispiel ein Laserstrahl zeilenweise die Erdoberfl¨ache ab und gewinnt dadurch ein Hohenprofil. ¨ Mit den gewonnenen Daten konnen ¨ dreidimensionale Bilder des gescannten Bereiches erstellt werden. Der Laserdistanzmesser befindet sich an Bord eines Flugzeuges, das den Auftrag hat, ein bestimmtes Areal zu uberflie¨ gen. Mit Hilfe eines GPS (Global Positioning System) wird st¨andig die Position des Flugzeugs bestimmt, und ein Navigationssystem im Flugzeug dient dazu, die Abweichungen durch Rollbewegungen, Neigung und Flugrichtung des Flugzeuges zu ermitteln. Ein Infrarotlaser (mit Wellenl¨ange von ca. 1, 5µ m) wird (bei den meisten Systemen) zeilenformig ¨ abgelenkt. Ein Detektor empf¨angt und registriert die vom Boden reflektierten Strahlen. Die Entfernung wird nun wieder uber ¨ die Laufzeit errechnet, die die Wellenl¨angen benotigen, ¨ um die Strecke Flugzeug – Oberfl¨ache – Flugzeug zuruckzulegen. ¨ Mit dem Scanwinkel und den Positionsangaben eines GPS und den internen Abweichungen des Flugzeugs (Neigung usw.) konnen ¨ diese Punkte in ein Koordinatensystem ubertragen ¨ und weiterverarbeitet werden. Noch eine Art der Entfernungsmessung mittels Laser ist die Kombination eines Laufzeit- mit einem Intensit¨atsmessverfahren. 4 Zur Bilderfassung wird ein bestimmter Bereich in der Realwelt mit Lichtpulsen bestimmter L¨ange (zum Beispiel 10–100ns) beleuchtet. Eine so genannte Laseroptik formt das Lichtbundel ¨ ¨ und bestimmt den optimalen Offnungswinkel. Das bedeutet in diesem Fall, dass nicht die Realwelt Zeile fur ¨ Zeile abgetastet, sondern ein 2D-Bereich auf einmal gemessen wird. Das aus dem Bereich der Realwelt zuruckgestreute ¨ Licht wird durch die Kamera detektiert. Die Distanz zwischen Objekt und Kamera bestimmt die Verzogerung ¨ des Laserlichts am Detektor. Diese Verzogerung ¨ des Laserlichts wird durch ein so genanntes Eintrittsfenster, das durch einen elektronischen Kameraverschluss (shutter) implementiert ist, registriert.
2.1.7 Fazit Es bleibt an dieser Stelle anzumerken, dass ein digitales Bild – je nachdem, durch welches Verfahren es erzeugt wurde – entsprechend weiterverarbeitet werden 4 Ein solches Messprinzip setzt die in unserem Institut eingesetzte EBK der Astrium GmbH ein, um Entfernungsbilder zu akquirieren. Leider wird diese Kamera nicht weiter unterstutzt. ¨
12
2 Grundlagen
muss, z.B. durch Rauschunterdruckung, ¨ Kontrastverst¨arkung usw. Wie und wann diese weiterverarbeitenden Methoden im Gesamtprozess der digitalen Bildverarbeitung zum Einsatz kommen, ist Gegenstand des Abschnitts 2.3. Zun¨achst wollen wir uns noch etwas genauer mit den Fehlern, die bei der Abbildung vom Kontinuierlichen zum Digitalen passieren konnen, ¨ bzw. mit den Problemen, die im Rahmen der Bildaufnahme zu beachten sind, besch¨aftigen.
2.2 Diskretisierung und Quantisierung von Bildern Im Allgemeinen treten Bilder in der Natur als kontinuierliche Signale auf. Im vorherigen Abschnitt 2.1 haben wir bereits eine Reihe von Verfahren kennen gelernt, die eine Abbildung von Kontinuierlichem auf Diskretes realisieren. Aber was passiert bei der Abbildung? Wie bereits erw¨ahnt, weisen Bilder im Kontinuierlichen eine unendliche Ausdehnung in x- und y-Richtung auf.5 Wollen wir die Bilder im Rechner verarbeiten, dann mussen ¨ sie abgetastet und in ein diskretes Raster auf eine endliche x- und y-Ausdehnung begrenzt werden. Das geschieht ublicherwei¨ se durch die bildgebenden Verfahren. Des Weiteren bestehen kontinuierliche Bilder aus analogen Frequenzen, die auf einen darstellbaren Intensit¨atswertbereich abgebildet werden mussen. ¨ Beschr¨anken wir uns auf Grauwertbilder, dann muss jede Farbe, Helligkeit, S¨attigung (sprich jede Frequenz/Wellenl¨ange) auf einen Bereich von ublicherweise ¨ 256 Grauwerten (oder auch Intensit¨atswerten) abgebildet werden. Hier spricht man von Diskretisierung auf ein Raster und Quantisierung auf Intensit¨atswerte. Abmayr (Abmayr, 1994) spricht in beiden F¨allen von Quantisierung – also die Quantisierung der Ortsauflosung ¨ sowie die Quantisierung der ¨ Intensit¨atswerte. Grunds¨atzlich kann man sagen, dass der Ubergang (also die Abbildung) vom Kontinuierlichen zum Diskreten als Quantisierung bezeichnet wird. Fur ¨ unsere weitere Betrachtung sind die unterschiedlichen Betrachtungsweisen irrelevant. Wir wollen Diskretisierung und Quantisierung als zusammengehorig ¨ betrachten und im Folgenden von Quantisierung sprechen.
2.2.1 Ortsauflosung ¨ Die Quantisierung der Ortsaufl¨osung kann auch als das r¨aumliche Abtasten in ein Raster (sampling) angesehen werden. Diese Rasterpunkte sollten nicht als einzelne Punkte angesehen werden, sondern eher als Zellen, die eine bestimmte r¨aumliche Ausdehnung haben. Diese Zellen werden auch als Bildpunkte oder Pixel (picture element) bezeichnet. Das Raster, das die Bildebene aufteilt wird auch als ¨ wird eine Rechtecktesselation verwendet, Tesselation bezeichnet.6 Ublicherweise wie in Abbildung 2.5 zu sehen ist. Fur ¨ die weiteren Betrachtungen wollen wir als 5 Die dritte Dimension und deren Abbildungsprobleme auf zwei Dimensionen sollen an dieser Stelle nicht behandelt werden. 6 Andere gebr¨ auchliche Tesselationen fur ¨ die Bildebene sind Dreiecke oder Sechsecke (vgl. auch Ballard und Brown (1982)).
2.2 Diskretisierung und Quantisierung von Bildern
13
Vereinfachung davon ausgehen, dass diese Rechecktzellen quadratisch sind.7 Des Weiteren l¨asst sich der Abbildung 2.5 entnehmen, dass je mehr Pixel zur Quantisierung zur Verfugung ¨ stehen, desto detailgenauer ein Bild digitalisiert werden kann. Oder auch: Je grober ¨ abgetastet wird, desto großer ¨ ist der Quantisierungsfehler. Man erkennt deutlich die entstehende Treppe beim Taxi an der C-S¨aule (s. Abbildung 2.5c).
(a)
(b)
(c)
(d)
Abbildung 2.5: Einzelbild (frame) aus einem MPEG 1-Video. Unterschiedliche Quantisierung der Ortsauflosung: ¨ (a) 352 × 288 Pixel, (b) 176 × 144 Pixel (c) 88 × 72 Pixel und (d) 44 × 36 Pixel
2.2.2 Grauwerte Bei der Quantisierung der Grauwerte wird der darzustellende Bereich in a¨ quidistante Intervalle eingeteilt. In Abbildung 2.6 ist ein Bild in unterschiedliche Grauwertintervalle quantisiert worden. Zwischen den Bildern 2.6 (a) und 2.6 (b) ist 7
Physikalisch besteht bei einem herkommlichen ¨ Monitor ein Seitenverh¨altnis einer Zelle von 4:3.
14
2 Grundlagen
kaum ein Unterschied sichtbar. Werden aber noch weniger Grauwerte zur Quantisierung verwendet, dann enstehen Konturen, die im Originalbild nicht vorhanden sind. Man spricht hierbei auch vom contouring (vgl. Ballard und Brown (1982)). Das ist besonders in Abbildung 2.6 (d) deutlich erkennbar.
(a)
(b)
(c)
(d)
Abbildung 2.6: (a) 128 Grauwerte, (b) 64 Grauwerte, (c) 16 Grauwerte und (d) 8 Grauwerte
Auch hier gilt: Je mehr Grauwerte zur Quantisierung zur Verfugung ¨ stehen, desto genauer ist die Abbildung und desto mehr Details lassen sich darstellen.
2.3 Stufen der Bildverarbeitung
15
2.3 Stufen der Bildverarbeitung ¨ Nachdem wir uns durch den vorherigen Abschnitt 2.1 einen groben Uberblick uber ¨ bildgebende Verfahren verschafft und in Abschnitt 2.2 die Probleme, die bei der Diskretisierung entstehen konnen, ¨ n¨aher diskutiert haben, sollen im Folgenden die einzelnen (logischen) Stufen eines digitalen Bildverarbeitungsystems vorgestellt werden. Des Weiteren geben wir dort, wo es sinnvoll ist, Hinweise auf die Alternativen der einzelnen Verarbeitungsstufen. Aufbauend auf den Ausgaben der bildgebenden Verfahren – also den digitalen Bildern – setzen die folgenden logischen Verarbeitungsstufen an. Nach der Bildgebung kommt in der Regel die so genannte Bildvorverarbeitung oder auch Bildrestauration (vgl. Abschnitt 2.3.1). Nachdem das Bild so aufbereitet wurde, kann es der Segmentierung (vgl. Abschnitt 2.3.2) zugefuhrt ¨ werden. Im Rahmen eines Segmentierungsprozesses werden die interessanten Strukturen im Bild von den nicht-interessanten Strukturen (meist Hintergrund) getrennt. Anschließend konnen ¨ von den segmentierten Strukturen signifikante Merkmale berechnet werden (vgl. Abschnitt 2.3.3), die dann durch Klassifikationsverfahren (vgl. Abschnitt 2.3.4) zu Klassen/Objekten eingeordnet werden konnen. ¨
2.3.1 Bildvorverarbeitung Bildvorverarbeitung (engl. preprocessing) ist die Stufe im Bildverarbeitungsprozess, die zum allgemeinen Ziel eine Verbesserung der Bilddaten hat. Dabei kann man sich die Bildvorverarbeitung als Bildmodifikation vorstellen, die den wesentlichen Bildinformationsgehalt nicht ver¨andert, ja eher noch verst¨arkt, d.h. deutlicher macht im Hinblick auf die weiterverarbeitenden Prozesse (Auswertung – s.u.). Prinzipiell ist die Bildvorverarbeitung eine Bildtransformation mit einem Eingabe- und mit einem (oder auch mehreren) Ausgabebild(ern). Eine Bildvorverarbeitung muss unter Umst¨anden durchgefuhrt ¨ werden, um den Rauschanteil im Bild zu vermindern. Hierfur ¨ kommen beispielsweise so genannte Gl¨attungsfilter zum Einsatz (s. Abschnitt 4.2). Sie haben das Ziel, Ausreißer“ (Unebenheiten) ” in den Intensit¨atswerten, (meist) bezogen auf eine lokale Nachbarschaft, zu finden und zu eliminieren. Ebenso muss eine Vorverarbeitung durchgefuhrt ¨ werden, um Beleuchtungskorrekturen aufgrund ungleichm¨aßiger Ausleuchtung einer Szene w¨ahrend der Bilderfassung durchzufuhren. ¨ Dies ist beispielsweise mit Hilfe eines Referenzbilds der Szene (ohne Bildinhalte; s. Abschnitt 4.1.3) moglich, ¨ das jeweils vom eigentlichen Bild subtrahiert wird. Des Weiteren kann eine Vorverarbeitung sinnvoll sein, um eine geometrische Entzerrung durchzufuhren, ¨ damit die Formen von Strukturen normiert werden konnen ¨ (s. Abschnitt 4.1.3). Weitere Normierungen konnen ¨ bzgl. Farbe oder Große ¨ durchgefuhrt ¨ werden. Ebenso wichtig ist eine Vorverarbeitung, um den Kontrast im Bild zu verbessern, sprich zu verst¨arken. Diese kann notwendig sein, wenn das bildgebende Verfahren nur sehr wenige und auch nur nah beieinander liegende Intensit¨atswerte ermoglicht. ¨
16
2 Grundlagen
Hier kommt beispielsweise Histogrammebnung oder eine Histogrammdehnung ins Spiel (s. Abschnitt 4.1), die durch – im weitesten Sinne – Umverteilungen der im Bild auftretenden Intensit¨atswerte eine Kontrastverst¨arkung erreichen. Weitere bildvorverarbeitende Maßnahmen mussen ¨ ergriffen werden, um Digitalisierungsfehler auszugleichen, um Filter gezielt auf bestimmte Frequenzen anzupassen oder um (nichtlineare) Grauwertverzerrungen, die durch den photographischen Effekt verursacht wurden, zu korrigieren, etc. (s. Abmayr (1994)).
2.3.2 Segmentierung Die Segmentierung hat ihre Ursprunge ¨ in den Arbeiten der Gestaltpsychologen (vgl. Ballard und Brown (1982)), die die Pr¨aferenzen der menschlichen Wahrnehmung im Hinblick auf Gruppieren und Organisieren von Perzepten (Form und Figuren im Anblick des Betrachters) analysiert haben. Gestaltprinzipien weisen ¨ auf bestimmte Gruppierungsprozesse hin, die etwas mit r¨aumliche N¨ahe, Ahnlichkeiten, Kontinuit¨at zu tun haben. Andere Ergebnisse haben etwas mit Figurund Hintergrundtrennung zu tun. Mit anderen Worten: Die menschliche Wahrnehmung versucht zun¨achst, das Gesehene in bedeutungsvollen Einheiten zu organisieren. Segmentierung im Rahmen der digitalen Bildverarbeitung ist die Trennung der zu untersuchenden Strukturen8 vom Hintergrund. Des Weiteren ist Segmentierung auch die Trennung der zu untersuchenden Strukturen voneinander oder auch die Unterteilung komplexer Strukturen in einfachere (vgl. Abmayr (1994)). Somit ist die Segmentierung eine Art Klassifikation auf Pixelebene – das Pixel gehort ¨ zur zu untersuchenden Struktur oder es gehort ¨ nicht dazu. Abmayr spricht hier vom Objektpixel“ respektive vom Nichtobjektpixel“. Auf jeden Fall ” ” bedarf es fur ¨ diese Klassifikationsaufgabe geeigneter Merkmale. Man unterscheidet einfache Segmentierungsverfahren (zum Beispiel Histogramm-basierte Schwellwertverfahren) von komplexeren Segmentierungsverfahren (zum Beispiel Region Growing). Ein Beispiel fur ¨ ein sehr einfaches Segmentierungsverfahren ist das Schwellwertverfahren. Man berechnet ein Histogramm der Grauwerte und hofft dabei, ein bimodales Histogramm zu erhalten. Bimodal meint in diesem Zusammenhang, dass deutlich zwei Maxima und ein Minimum zwischen den Maxima zu erkennen sind.9 Wird die Schwelle nun auf das Minimum (oder in die N¨ahe) gelegt, so konnen ¨ alle Pixel oberhalb der Schwelle der zu untersuchenden Struktur, und alle Pixel unterhalb der Schwelle dem Hintergrund zugeordnet werden. Prinzipiell gibt es auch die Moglichkeit, ¨ genau antagonistisch zu entscheiden. Egal wie, das Bild wird logisch unterteilt. In Abbildung 2.7 ist genau fur ¨ den eben beschriebenen Fall ein Segmentierungsbeispiel dargestellt. Die 8 Diese zu untersuchende Struktur wird im Allgemeinen als Objekt bezeichnet. Zu diesem Zeitpunkt im Prozess der digitalen Bildverarbeitung weiß“ der Rechner allerdings noch nicht, dass die zu un” tersuchende Struktur ein (zusammengehoriges) ¨ Objekt ist. Aus diesem Grund ist es m.E. zu fruh, ¨ um von Objekten zu sprechen. 9 Das w¨are in der Tat der Idealfall!
2.3 Stufen der Bildverarbeitung
17
(a)
(b)
(c)
Abbildung 2.7: Beispiel einer Segmentierung durch einen einfachen Schwellwert. (a) Originalbild, (b) zugehoriges ¨ bimodales Histogramm und (c) segmentiertes Bin¨arbild. Gew¨ahlte Schwelle bei 131 (gelbe vertikale Linie im Histogramm). Diese Abbildung befindet sich auch auf der beiliegenden CD-ROM im Verzeichnis Abbildungen
unterschiedlichen Segmentierungans¨atze werden detaillierter in Kapitel 7 vorgestellt.
2.3.3 Merkmalsextraktion Die Qualit¨at des Ergebnisses des Prozesses der Merkmalsextraktion ist wesentlich fur ¨ die anschließende Klassifikation. Im Rahmen dieser Stufe findet im Allgemeinen eine hohe Datenreduktion statt. Fur ¨ die zuvor segmentierten zu untersuchenden Strukturen konnen ¨ nun Merkmalsvektoren berechnet werden. Beispielsweise konnen ¨ fur ¨ eine Region Umfang, Schwerpunkt oder Große ¨ bestimmt werden. Diese Daten konnen ¨ dann in einem Merkmalsvektor abgelegt werden, der
18
2 Grundlagen
im Anschluss als Eingabe fur ¨ die Klassifikation dient. Verschiedene Strukturen weisen unterschiedliche Merkmalsvektoren auf, respektive unterschiedliche Auspr¨agungen der Merkmale eines Merkmalvektors. Die Extraktion von verschiedenen Merkmalen wird in Kapitel 8 genauer behandelt. Ein wesentlicher Punkt bei der Merkmalsextraktion ist die Signifikanz der gew¨ahlten Merkmale. Hier existieren leider keine allgemeingultigen ¨ Regeln im Vorfeld fur ¨ die Auswahl der Merkmale. Eine probate Vorgehensweise zur Auswahl von signifikanten Merkmalen besteht darin, die verschiedenen Merkmalextraktionsverfahren und somit Merkmale auf die zu losende ¨ Aufgabe anzuwenden und dann gem¨aß eines Gutekriteriums ¨ (Signifkanzmaß) die Problem-ad¨aquaten Merkmale zu bestimmen. Die Signifikanz eines Merkmales kann ansatzweise zum einen aus dem Mittelwert und zum anderen der Varianz ermittelt werden.
2.3.4 Klassifikation Die zun¨achst letzte Stufe im Bildverarbeitungsprozess ist die Klassifikation der zu untersuchenden Strukturen anhand der errechneten Merkmale, um diesen dann beispielsweise Objektklassen zuzuweisen. Es existieren eine Vielzahl an Klassifikationsverfahren. Auch gilt, dass keine allgemeingultigen ¨ Regeln fur ¨ das jeweilige Klassifikationsproblem10 existieren. Die Wahl des Klassifikationsverfahrens ist auch eher heuristischer Natur. Prinzipielle Unterschiede bestehen im so genannten Training des Klassifikators (auch Lernverfahren). Hier unterscheidet man grunds¨atzlich uberwachtes, ¨ unuberwachtes ¨ und unterstutzendes ¨ Lernen. Ein ubliches ¨ Klassifikationsverfahren benutzt so genannte Prototypen (einer Objektklasse), die beispielsweise durch Merkmalsvektoren bestimmt werden, und ¨ berechnet die Ahnlichkeit/Distanz eines gerade gemessenen Vektors zum jewei¨ ligen Prototypenvektor. Ist die Distanz gering oder die Ahnlichkeit groß, so wird der gemessene Vektor der entsprechenden Klasse zugeordnet. Die Klassifikation ist Gegenstand des Kapitels 9.
2.4 Zusammenfassung ¨ In diesem Kapitel haben wir uns zun¨achst einen ersten Uberblick uber ¨ bildgebende Verfahren verschafft. Diese Verfahren (auch als Bilderfassung bezeichnet) stellen dem Rechner ein Abbild der Realwelt in digitaler Form zur weiteren Verarbeitung bereit. Es wurde nicht darauf eingegangen, dass aufgrund der Projektion von einer dreidimensionalen Welt auf ein zweidimensionales digitales Raster erhebliche Information — nicht zuletzt die r¨aumliche — verloren geht. Um diesen Missstand zu beheben, existiert eine Reihe von Verfahren, die aus der zweidimensionalen Information dreidimensionale Information berechnen, was aber nicht Gegenstand diese Buches ist. Diesbezuglich ¨ sei beispielsweise auf Jiang und 10Nicht
jeder Klassifikator arbeitet gleich gut auf einem speziellen Problem.
2.4 Zusammenfassung
19
Bunke (1997) verwiesen. Nach den bildgebenden Verfahren haben wir die Fehler oder Ungenauigkeiten, die bei der Bilderfassung enstehen – durch die Diskretisierung bzw. Quantisierung –, besprochen. Sie beeinflussen in hohem Maße die nachfolgende Auswertung. Diese Ungenauigkeiten werden nicht nur durch zum Beispiel eine inhomogene Ausleuchtung der Szene oder durch Rauschen verursacht, sondern auch die zur Verfugung ¨ stehenden Bereiche fur ¨ die Ortsauflosung ¨ und die Grauwertintervalle haben maßgeblichen Einfluss auf die Qualit¨at der digitalisierten Bilder. Je besser also das bildgebende Verfahren, desto besser – zumindest in der Regel – die nachfolgende Auswertung. Ist ein Bild durch die Aufnahme schon so verrauscht, dass auch der menschliche Betrachter nichts mehr erkennt, wird es ein automatisches Verfahren noch viel schwerer haben. In einem solchen Fall sollte man sich uber ¨ die Bilderfassung und mogliche ¨ Alternativen sehr genaue Gedanken machen. ¨ Folgende Uberlegungen sollen ein praktisches Problem bei der Bildgebung verdeutlichen. Gehen wir von einem ublichen ¨ Bild der Große ¨ 1024 × 786 Pixel aus. Außerdem wollen wir einen Bereich von 10 Metern in der Breite mal 6 Meter in der Hohe ¨ auf dieses Bild abbilden. Dann lost ¨ das digitale Bild einen Hohenzen¨ timeter auf ca. 1,28 Pixel auf. Fur ¨ die Breite bedeutet das, dass ein Zentimeter der Szene auf ca. 1,02 Pixel abgebildet wird. Nun stelle man sich vor, mit wie viel Pixel eine handelsubliche ¨ Streichholzschachtel, die sich in der Szene befindet, aufgelost ¨ wird. Sie wird bei der Auflosung ¨ nicht mehr zu erkennen sein. Schlimmer noch. Wird nach der Bildaufnahme eine anschließende Rauschminderung durchgefuhrt, ¨ kann die abgebildete Streichholzschachtel dem Gl¨attungsoperator zum ¨ Opfer fallen. Nicht nur aus einer solchen Uberlegung heraus ist es wichtig, sich uber ¨ die Bildgebung und die bestimmenden Parameter bzw. Gegebenheiten Gedanken zu machen. Schließlich behandelt der dritte Teil dieses Kapitels die (prinzipiellen) Stufen eines digitalen Bildverarbeitungssystems, die im Anschluss an die Bilderfassung durchlaufen werden. Als Fazit l¨asst sich allgemein sagen, dass je besser das bildgebende Verfahren ist, umso erfolgreicher auch die nachfolgende Auswertung der Bilder sein wird.
Kapitel 3
Bin¨arbildverarbeitung Bevor wir in die Grauwertbildverarbeitung genauer einsteigen, wollen wir uns zun¨achst mit der Bin¨arbildverarbeitung und morphologischen Operationen auf Bin¨arbildern besch¨aftigen, da dies einen sehr schonen ¨ und einfachen Einstieg in die Bildverarbeitung darstellt. Digitale Bilder werden aufgrund des Wertebereiches der jeweiligen Pixel beispielsweise in Farb-, Grauwert- oder in Bin¨arbilder unterteilt. Weisen die Werte der Pixel nur 0 oder 1 auf (hierbei sind in der Regel logisch 0“ und logisch ” ” 1“ gemeint), so spricht man von Bin¨arbildern. Hier sind sog. Bildpunktoperationen und auch lokale Nachbarschaftsoperationen moglich. ¨ Bei Bildpunktoperationen wird aus einem Bildpunkt (Pixel) eines Eingabebildes E( x, y) ein ver¨anderter (modifizierter) Bildpunkt des Ausgabebildes A( x, y) berechnet. Bei lokalen Nachbarschaftsoperationen fließt die n¨ahere Umgebung des Bildpunktes E( x, y) zur Berechnung des neuen Bildpunktes A( x, y) mit ein. Die Bin¨arbildverarbeitung wird zur Vorverarbeitung (z.B. Rauschminderung durch morphologische Operationen), Segmentierung (z.B. konnen ¨ transformierte Bin¨arbilder als Maskenbilder fur ¨ Grauwertbilder genutzt werden) und auch zur Merkmalsextraktion (z.B. das Z¨ahlen von Bildpunkten) eingesetzt. Sie beinhaltet wesentliche Methoden der digitalen Bildverarbeitung. Um nun ein Bin¨arbild zu erzeugen, wird beispielsweise ein Grauwertbild geeignet segmentiert. Die einfachste Methode ist fur ¨ diesen Zweck das so genannte Schwellwertverfahren. Hierbei werden Intensit¨atswerte, die oberhalb einer (vorgegebenen) Schwelle liegen, auf den Wert logisch 1 gesetzt und alle Werte unterhalb der Schwelle auf den Wert 0. Prinzipiell kann das auch umgekehrt durchgefuhrt ¨ werden.1 Das Resultat dieser Segmentierung ist auf jeden Fall ein Bin¨arbild. Man spricht in diesem Fall auch von Binarisierung. 1
Anm.: Fur ¨ die technische Umsetzung wird die Schwelle kleiner oder großer ¨ gleich gesetzt.
22
3 Bin¨arbildverarbeitung
Auf mogliche ¨ Bin¨arbildformate (ungepackte oder gepackte Bin¨arbilder, Bitebenen-Bilder, ...) sei an dieser Stelle auf die Literatur verwiesen. Zum Beispiel auf J¨ahne (1991); Abmayr (1994); Haber¨acker (1985); Rosenfeld und Kak (1982) bzw. Zamperoni (1989). Wir wollen uns zun¨achst im folgenden Abschnitt ein paar Gedanken zu potenziell vorkommenden Punkten und deren Nachbarn – also Punktegruppen – machen, damit wir die nachfolgenden Operationen auf Punkten und deren Nachbarn besser verstehen konnen. ¨
3.1 Punktegruppen Um Informationen uber ¨ die Topologie oder auch Zusammengehorigkeit ¨ von Pi¨ xeln zu erhalten, konnen ¨ folgende Uberlegungen bzgl. einer 4er-Nachbarschaft im Rechteckraster dienen. Dazu sind in Abbildung 3.1 hinsichtlich eines Rechteckrasters (Tesselation) zwei ubliche ¨ Nachbarschaften 4er-Nachbarschaft (links) und 8er-Nachbarschaft dargestellt. z steht dabei fur ¨ das gerade betrachtete Zentrumspixel und n steht fur ¨ die jeweiligen betrachteten Nachbarn.
n
n
nz
n n
(a)
n n
n
n n
nz
n n n
(b)
¨ Abbildung 3.1: Ubliche Bildpunktnachbarschaften bzgl. einer Rechteck-Tesselation: (a) 4er-Nachbarschaft bzw. (b) 8er-Nachbarschaft
In einem Bin¨arbild sollen die folgenden Punktegruppen unterschieden werden (die folgenden Definitionen, Operationen und Beispiele in diesem Kapitel sind angelehnt an Abmayr (1994) bzw. Soille (1998)): BKNP steht fur ¨ Einzelpunkte, die keinen Nachbarpunkt haben. BENP steht fur ¨ Endpunkte (von Linien), die genau einen Nachbarpunkt aufweisen. BZNP steht fur ¨ Verbindungspunkte, die genau zwei Nachbarpunkte aufweisen. BDNP steht fur ¨ Randpunkte, die genau drei Nachbarpunkte aufweisen.
3.1 Punktegruppen
23
BV NP steht fur ¨ Mittenpunkte, die genau vier Nachbarpunkte aufweisen. Die Frage ist nun, wie erh¨alt man mit einfachen Operationen auf Bin¨arbilder die oben genannten Punktegruppen. Dazu gehen wir von den nachfolgenden Voraussetzungen aus: Invertieren von E E1 ODER E2 E1 UND E2 E1 EXOR E2 SHIFT E nach rechts SHIFT E nach links SHIFT E nach oben SHIFT E nach unten
⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒
A=E A = E1 ∪ E2 A = E1 ∩ E2 A = E1 /E2 A = Erechts A = Elinks A = E oben A = Eunten
Gegeben seien die Bin¨arbilder E 1 und E2 als Eingabebilder und A als Ausgabebild. Es gelten die obigen einfachen Operationen. Es werden die Punktegruppen, die Rechts (BRKN ), Links (B LKN ), Oben (BOKN ) sowie Unten (BUKN ) keinen Nachbarpunkt ausweisen, bestimmt. Ebenso werden die Punktegruppen, die Rechts (BRNP ), Links (B LNP ), Oben (BONP ) sowie Unten (BUNP ) einen Nachbarpunkt aufweisen, bestimmt. Jeweils ein exemplarisches Beispiel soll das Prinzip verdeutlichen. Fur ¨ die nicht explizit angegebenen Punktegruppen ist dann analog zu den angefuhrten ¨ Beispielen die Bestimmung mittels der einfachen Operation durchzufuhren. ¨ 1. Beispiel: Die Punktegruppe BRKN soll erzeugt werden (mit C, D als Zwischenergebnisbilder): Ausgangsbildzeile E C=E D = Clinks A = E∩D
11111111100000000 00000000011111111 00000000111111110 00000000100000000
In analytischer Form: A( x, y) = E( x, y) ∩ E( x − 1, y) 2. Beispiel: Die Punktegruppe BRNP soll erzeugt werden (mit D als Zwischenergebnisbild): Ausgangsbildzeile E D = E links A = E∩D
11111111100000000 11111111000000000 11111111000000000
24
3 Bin¨arbildverarbeitung
In analytischer Form: A( x, y) = E( x, y) ∩ E( x − 1, y) Entsprechend konnen ¨ die anderen Punktegruppen BLKN , BOKN und BUKN sowie ¨ BLNP , BONP und BUNP bestimmt werden. Mittels dieser Punktegruppen konnen dann die zuerst genannten Punktegruppen BKNP , BENP , BZNP , BDNP und BV NP durch Boolesche Gleichungen beschrieben werden: Kein Nachbarpunkt: BKNP = BRKN ∩ BLKN ∩ BOKN ∩ BUKN Ein Nachbarpunkt: BKNP ∪ BENP
=
BENP
=
( BLKN ∩ BOKN ∩ BUKN )∪ ( BLKN ∩ BUKN ∩ BRKN )∪ ( BLKN ∩ BOKN ∩ BRKN )∪ ( BRKN ∩ BOKN ∩ BUKN ) BKNP ∪ BENP / BKNP
Zwei Nachbarpunkte: BKNP ∪ BENP ∪ BZNP
=
BZNP
=
( BLKN ∩ BRKN )∪ ( BRKN ∩ BOKN )∪ ( BRKN ∩ BUKN )∪ ( BLKN ∩ BUKN )∪ ( BLKN ∩ BOKN )∪ ( BOKN ∩ BUKN ) ( BKNP ∪ BENP ∪ BZNP )/( BKNP ∪ BENP )
Drei Nachbarpunkte: BKNP ∪ BENP ∪ BZNP ∪ BDNP BDNP
= =
BLKN ∪ BRKN ∪ BOKN ∪ BUKN ( BKNP ∪ BENP ∪ BZNP ∪ BDNP )/ ( BKNP ∪ BENP ∪ BZNP )
Vier Nachbarpunkte: BV NP = BRNP ∩ BLNP ∩ BONP ∩ BUNP Shrink und Blow Zwei sehr einfache Operationen – Shrink und Blow – konnen ¨ mittels der oben angefuhrten ¨ Punktegruppen realisiert werden. Dabei entspricht die Operation Shrink der Punktegruppe BV NP . Nur ein Pixel aus E( x, y), in dessen 4erNachbarschaft alle vier Pixel gesetzt sind, wird auch in das Ausgabebild A( x, y) ubernommen. ¨ Dadurch werden Randpixel und auch einzelne Pixel (Rauschen) aus E geloscht. ¨ Oder: A( x, y) = E( x, y) ∩ E( x + 1, y) ∩ E( x − 1, y) ∩ E( x, y + 1) ∩ E( x, y − 1)
(3.1)
3.2 Morphologie
25
A( x, y) ist also nur dann 1, wenn alle Nachbarn ebenfalls 1 sind. Andernfalls ist A( x, y) = 0. Invertiert man das Eingabebild und wendet dann die Operation Shrink an und invertiert man das Bild dann erneut, so erh¨alt man die Operation Blow. Dadurch vergroßert ¨ sich ein Objekt im Bild, indem genau am Rand des Objektes in alle vier Richtungen eine Punktereihe angefugt ¨ wird. Oder: A( x, y) = E( x, y) ∪ E( x + 1, y) ∪ E( x − 1, y) ∪ E( x, y + 1) ∪ E( x, y − 1)
(3.2)
A( x, y) ist also nur dann 1, wenn ein Nachbar ebenfalls 1 ist. Durch diese beiden sehr einfachen Operationen konnen ¨ schon nutzliche ¨ Ver¨anderungen im Bild vorgenommen werden. Beispielsweise kann durch die Operation Shrink in Verbindung mit der EXOR-Operation zwischen dem verkleinerten und dem Originalbild der Rand eines Objektes extrahiert werden. Durch die BlowOperation konnen ¨ z.B. kleine Lucken ¨ im Objekt geschlossen werden. Diese beiden Operationen fuhren ¨ uns zum n¨achsten Abschnitt uber ¨ die mathematische Morphologie in Bin¨arbildern.
3.2 Morphologie Die mathematische Morphologie ermoglicht ¨ exakte Aussagen uber ¨ die Transformation eines Bildes. Hierzu wird ein sog. Umgebungselement (strukturierendes Element X; im Folgenden abgekurzt ¨ mit SE) eingefuhrt, ¨ das den Zusammenhang eines Bildpunktes mit seiner lokalen Nachbarschaft festlegt. Es werden folgende Basisoperationen angewendet: Dilatation, Erosion, Vereinigungsmenge, Schnittmenge und Mengendifferenz. Dilatation: Das Bild A entsteht dadurch, dass ein Eingabebild E gem¨aß dem SE X erweitert (dilatiert) wird. Diese Operation fugt ¨ Bildpunkte an den Rand eines Objektes an – und zwar entsprechend der Form und Große ¨ von X. A = E⊕X Erosion: Das Bild A entsteht dadurch, dass ein Eingabebild E gem¨aß dem SE X abgetragen (erodiert) wird. Diese Operation tr¨agt Bildpunkte am Rand eines Objektes ab – und zwar entsprechend der Form und Große ¨ von X. A = EX Vereinigungsmenge: Vereinigt die Mengen der Bilder E 1 und E2 . Diese Operation entspricht dem logischen OR. A = E1 ∪ E2
26
3 Bin¨arbildverarbeitung
Schnittmenge: Schneidet die Mengen der Bilder E 1 und E2 . Diese Operation entspricht dem logischen AND. A = E1 ∩ E2 Mengendifferenz: Der Unterschied der Mengen der Bilder E 1 und E2 wird bestimmt. Diese Operation entspricht dem logischen EXOR. A = E1 /E2 Zu jedem SE wird ein Bezugspunkt festgelegt, der sowohl innerhalb als auch außerhalb des SE liegen kann. Es werden die Bildpunkte gem¨aß dem jeweiligen SE auf den Bezugspunkt transformiert. Fur ¨ die Erosion bedeutet dies, dass alle Bildpunkte, die innerhalb des SE liegen, auf den Bezugspunkt abgebildet werden. Fur ¨ die Dilatation bedeutet es, dass er, wenn ein Bildpunkt gesetzt ist, auf die Große ¨ und Form des SE abgebildet wird. Gerade die Dilatation und Erosion besitzen wichtige Eigenschaften. Seien X A und XB zwei SE, so gilt: X A ⊆ XB → E X A ⊇ E XB → E ⊕ X A ⊆ E ⊕ XB
(3.3)
Umgangssprachlich l¨asst sich dieser Sachverhalt etwa wie folgt darstellen: Das SE ¨ die SE jeweils Kreise mit X A ist kleiner als XB (X A ⊆ XB ). Beispielsweise konnten unterschiedlichen Radien sein. Tr¨agt man nun zum einen eine Region in einem ¨ Bild E mit dem kleineren SE (E X A ) und dann zum anderen mit den großeren SE (E XB ) etwas ab, dann ist das Ergebnis, dass die jeweils resultierenden Regionen unterschiedlich groß sind und dass die Region, die mit dem großeren ¨ SE erodiert wurde, in der Region, die mit dem kleineren SE erodiert wurde, enthalten ist (X A ⊆ XB → E X A ⊇ E XB ). Das umgekehrte Verhalten gilt quasi in Analogie fur ¨ die Dilatation (X A ⊆ XB → E ⊕ X A ⊆ E ⊕ XB ). Weiterhin ist die Dilatation kommutativ, die Erosion nicht (wenn z.B. E großer ¨ als X ist, dann ist X E nicht sinnvoll!). Es gilt: E⊕X = X⊕E bzw.
E X = X E
Die Dilatation des invertierten Bildes ist gleich dem invertierten erodierten Bild: E⊕X = EX Im dilatierten Bild ist das Originalbild enthalten und im Originalbild das erodierte Bild: EX ⊂ E ⊂ E⊕X
3.3 Morphologische Operationen
27
Dilatation und Erosion sind monotone Transformationen. Fur ¨ zwei Bilder E1 und E2 gilt: E1 ⊇ E2 −→ E1 ⊕ X ⊇ E2 ⊕ X E1 ⊇ E2 −→ E1 X ⊇ E2 X E ⊕ ( X 1 ∪ X2 ) = ( E ⊕ X 1 ) ∪ ( E ⊕ X 2 ) E ( X 1 ∪ X2 ) = ( E X 1 ) ∩ ( E X 2 ) Durch Dilatation konnen ¨ neue Objekte entstehen, und Locher ¨ sowie konkave Randbereiche werden aufgefullt. ¨ In Abbildung 3.2 ist ein Beispiel dargestellt, bei dem die Kontur (schwarze X“ gekennzeichnet) mit der Elementarraute (vgl. Ab” bildung 3.3) dilatiert wurde. Die so entstandenen neuen Bildpunkte sind andersfarbig (hellgraue X“ ) dargestellt. Eine Rucktransformation ¨ ist nicht moglich. ¨ ”
X
X
X
X X X
X X
X
X X
D ila ta tio n X
X
X
X
X X X
X X
X X
X X
X
X X
X
X
X X
X
X
X X
X X
X
X
X
Abbildung 3.2: Beispiel: Dilatation
Durch Erosion konnen ¨ kleine Objekte ganz verschwinden. Das kann im Rahmen einer Rauschunterdruckung ¨ fur ¨ pixelgroße Objekte durchaus erwunscht ¨ sein. Konvexe Randbereiche sowie Objektteile werden abgetragen. Eine Rucktransfor¨ mation ist ebenfalls nicht moglich. ¨
3.3 Morphologische Operationen Ein SE deutet eine logische Verknupfungsvorschrift ¨ an, mit der die lokale Umgebung eines Pixels bearbeitet wird. Fur ¨ ein Bin¨arbild konnen ¨ das die Werte 0, 1 und b (fur ¨ beliebig) sein. Im Rechteckraster sind die kleinstmoglichen ¨ SE zum einen das sog. Elementarrechteck (vier Bildpunkte) und zum anderen die Elementarraute (funf ¨ Bildpunkte). In der folgenden Abbildung 3.3 sind diese SE schematisch dargestellt, jeweils mit einem moglichen ¨ Bezugspunkt. Kommt beispielsweise w¨ahrend der Dilatation der Bezugspunkt des SE auf einen gesetzten Punkt im Bin¨arbild, so werden, gem¨aß des verwendeten SE die Nachbarpunkte im Ergebnisbild gesetzt.
28
3 Bin¨arbildverarbeitung
X O X
X
X
X
X
(a)
X X
O X
X X
(b)
X
X
O X X
(c)
Abbildung 3.3: Elementare strukturierende Elemente: (a) Elementarrechteck, (b) Elementarachteck und (c) Elementarraute. Ein jeweils moglicher ¨ Bezugspunkt ist als o“ ” dargestellt
3.3.1
¨ Offnen und Schließen
Die einfachen Operationen Dilatation und Erosion reichen fur ¨ komplexere Aufgaben nicht aus. Dies fuhrt ¨ zu einer weiteren Ebene innerhalb der mathematischen Morphologie: der komplexen Morphologie. Die Methoden der komplexen Morphologie lassen sich zum Teil auf einfachere Methoden wie Dilatation und Erosion bzw. deren Kombinationen zuruckf ¨ uhren. ¨ Als Beispiele hierfur ¨ werden die ¨ Methoden Offnen und Schließen der komplexen Morphologie im Folgenden dargestellt: ¨ Offnen: Diese Methode entsteht durch das hintereinander erfolgende Ausfuhren ¨ einer Erosion und einer Dilatation, wobei die Anzahl der Erosionsschritte gleich der Anzahl der Dilatationsschritte ist. Fur ¨ beide Grundoperationen wird das gleiche SE X verwendet. A = (E X) ⊕ X Durch diese Methode verschwinden kleine Objekte ganz; konvexe Objektr¨ander werden abgetragen. Schließen: Diese Methode entsteht durch das hintereinander erfolgende Ausfuhren ¨ einer Dilatation und einer Erosion, wobei die Anzahl der Erosionsschritte gleich der Anzahl der Dilatationsschritte ist. Fur ¨ beide Grundoperationen wird das gleiche SE X verwendet. A = (E ⊕ X) X Durch diese Methode verschmelzen eng aneinander liegende Objekte; Locher ¨ und konkave Objektr¨ander werden aufgefullt. ¨ Ebenso konnen ¨ Brucken ¨ zwischen eng benachbarten Objekten entstehen.
3.3 Morphologische Operationen
29
In der Abbildung 3.4 ist die morphologische Operation Schließen mit dem Elementarachteck durchgefuhrt ¨ worden. Das Grauwertbild eines Schlussels ¨ ist in Abbildung 3.4 (a) abgebildet. Dieses Bild wurde binarisiert und invertiert. Das Ergebnis ist in Abbildung 3.4 (b) dargestellt. Anschließend wurde auf diesem Bild die morphologische Operation Schließen mit dem Elementarachteck angewendet. Das Ergebnis ist in Abbildung 3.4 (c) dargestellt. Man erkennt deutlich, dass das kleine Loch geschlossen wurde. Ebenso sind die charakteristischen Zacken oder Vertiefungen am Schlusselbart ¨ verschwunden.
(a)
(b)
(c)
Abbildung 3.4: (a) Grauwertbild (b) invertiertes und binarisiertes Bild (c) Bild nach Anwendung der morphologischen Operation Schließen. Deutlich zu erkennen ist die Verf¨alschung der Umrisslinien
In Abbildung 3.5 (n¨achste Seite) sind die einzelnen Schritte innerhalb der mor¨ phologischen Operation Offnen ebenfalls mit dem Elementarachteck abgebildet. Das Bild in Abbildung 3.4 (b) wurde als Eingabe verwendet. In Abbildung 3.5 (a) ist ein Zwischenergebnis innerhalb der Erosion abgebildet. In Abbildung 3.5 (b) ist das Ergebnis nach der Erosion und in Abbildung 3.5 (c) nach der kompletten ¨ Operation Offnen zu sehen. Es ist deutlich zu erkennen, dass w¨ahrend der Erosionsphase kleinere Bildstrukturen geloscht ¨ werden, die dann auch im Rahmen der Dilatation nicht wieder rekonstruiert werden konnen. ¨
3.3.2 Steppenbrand oder GRASSFIRE Bisher wurden die vorgestellten Methoden immer nur zur Verarbeitung ganzer Bilder angewendet. Das bedeutet, dass alle Objekte gleich behandelt werden. Einzelne Objekte konnen ¨ nicht individuell bearbeitet werden. Dafur ¨ ist in der Regel eine Objekttrennung erforderlich, und zwar unabh¨angig von der Form des Objektes. Die im Folgenden vorgestellte GRASSFIRE-Methode dient der Objekttrennung. GRASSFIRE simuliert eine Art Steppenbrand. Und zwar werden topologisch zusammenh¨angende und beliebig geformte Objekte abgebrannt. Ein abgebranntes Objekt wird in ein eigenes Bild geschrieben (Markierungsbild M). Vorausset-
30
3 Bin¨arbildverarbeitung
(a)
(b)
(c)
Abbildung 3.5: (a) Ergebnis eines Zwischenschrittes in der Erosionsphase (b) Ergebnis ¨ nach der Erosion(c) Ergebnisbild nach Anwendung der morphologischen Operation Offnen. Deutlich zu erkennen ist das Verschwinden einzelner Bildstrukturen, die auch nicht rekonstruiert werden konnten
zung fur ¨ GRASSFIRE ist ein so genannter Zundpunkt ¨ (PM ( x, y)) oder Markierungspunkt. Er muss bekannt sein. Bei mehreren Objekten werden mehrere Zundpunkte ¨ benotigt. ¨ Der Algorithmus konnte ¨ wie folgt aussehen: 1. Starte beim Z¨ undpunkt und dilatiere mit Elementarraute. 2. Verkn¨ upfe Originalbild mit Markierungsbild durch logisch "AND". 3. Abbruch, wenn sich Bitzahl im Markierungsbild nicht mehr ¨ andert, sonst 1. Die GRASSFIRE-Methode erlaubt in Verbindung mit einer Erosion die Rekonstruktion ubrig ¨ gebliebener Objekte. Weiterhin konnen ¨ Hohlr¨aume in Objekten aufgefullt ¨ werden. Hierzu muss das Markierungsbild aus dem invertierten Originalbild erzeugt werden und dieses Bild dann so lange erodiert werden, bis alle Hohlr¨aume verschwunden sind. Das so entstandene Markierungsbild wird dann in GRASSFIRE verwendet, um das invertierte Originalbild (ohne Hohlr¨aume) zu rekonstruieren. Des Weiteren konnen ¨ durch den Einsatz von GRASSFIRE Objekte am Bildrand geloscht ¨ werden. Hierbei besteht das Markierungsbild aus den Randpunkten. Nach GRASSFIRE bleiben alle Objekte ubrig, ¨ die den Bildrand beruhren. ¨ Im Anschluss wird eine Mengendifferenzoperation mit dem Originalbild durchgefuhrt. ¨ Resultat ist ein Bild ohne Randobjekte. Auch Objektz¨ahlen kann mittels GRASSFIRE realisiert werden. Es wird dazu ein Objekt nach dem anderen abgebrannt, und die abgebrannten Objekte werden mitgez¨ahlt. Letztendlich konnen ¨ durch die Extraktion von einzelnen Objekten genau diese Objekte anschließend besser – da sie aus dem Originalbild herausgelost ¨ sind – analysiert werden. Z.B. lassen sich einzelne Objektparameter (Große, ¨ Umfang, ...) bestimmen.
3.3 Morphologische Operationen
31
3.3.3 Letzte Erosion Wird ein Bild erodiert, so wirkt sich diese Operation auf alle im Bild vorkommenden Objekte gleichermaßen aus. Dadurch verschwinden kleine Objekte leichter als große, da ja gem¨aß Große ¨ und Form des genutzten SE alle Objektr¨ander gleich behandelt werden. Das kann durchaus ein Nachteil sein, wenn z.B. die Anzahl der Objekte im Bild von Interesse ist. Durch die Methode der Letzten Erosion soll dieser Nachteil behoben werden (vgl. Abmayr (1994)). Hierbei verschwinden auch sehr kleine Objekte nicht vollst¨andig. Es bleibt von jedem Objekt ein gewisser Rest ubrig. ¨ Der Algorithmus lautet etwa wie folgt: 1. Pr¨ ufen (vor jeder Erosion), ob Objekt durch Erosion verschwindet. Testweise Durchf¨ uhrung einer Erosion. 2. Alle ¨ ubrig gebliebenen Objekte werden durch GRASSFIRE rekonstruiert. 3. Mengendifferenz zwischen Ausgangsbild und rekonstruiertem Bild. 4. Bildspeicher f¨ ur verschwundene Objekte. Sie werden hier akkumuliert. 5. Durchf¨ uhren der echten Erosion. Starte wieder bei 1. mit erodiertem Bild. Abbruch, wenn keine Objekte mehr vorhanden sind.
3.3.4
hit-or-miss“ ”
Die hit-or-miss“-Transformation (vgl. Abmayr (1994)) ist letztendlich der Ursprung ” fur ¨ die Dilatation und die Erosion. Hierzu wird ein zweiphasiges SE definiert ¨ Bildposition anX = ( X1 , X2 ). Dieses SE wird nacheinander auf jede mogliche gewendet, wobei untersucht wird, ob sich die Menge X1 vollst¨andig in E und die Menge X2 vollst¨andig im invertierten Bild E befindet. Sind beide Bedingungen erfullt, ¨ so gehort ¨ der neue Punkt (Bezugspunkt) zur Ergebnismenge (vgl. auch Abmayr (1994). Es gilt: A = E X = ( E X 1 ) ∩ ( E ⊕ X2 ) = ( E X1 ) ∩ ( E X2 )
(3.4)
mit X = X1 ∪ X2 und X1 ∩ X2 = 0. ( als hit-or-miss-Operator). Die Erosion ist ein Sonderfall mit X2 = 0 und das SE X1 enth¨alt nur 1. Verdunnung ¨ und Verdickung Die Verdunnung ¨ (auch Abmagerung) sowie die Verdickung lassen sich mittels der “hit-or-miss“-Operation realisieren. Objekte im Bild E werden verdunnt ¨ durch das SE X, wenn von E mengenm¨aßig ( E X ) abgezogen wird. B ◦ X als allgemeine Form der Abmagerungsoperation, mit: A = B ◦ X = E/( E X ) = E ∩ ( E X )
(3.5)
32
3 Bin¨arbildverarbeitung
Eine Auspr¨agung der Verdunnung ¨ ist das so genannte Skelettieren. Es wird angewendet, um beispielsweise aus fl¨achenhaften Objekten linienhafte zu erzeugen, weil eine Formbeschreibung durch Polygone erwunscht ¨ ist. Ebenso konnen ¨ Strichzeichnungen, die z.B. durch einen Scanner digitalisiert wurden, so weit verdunnt ¨ werden, dass die resultierende Kontur genau die Breite eines Bildpunktes aufweist. Eine g¨angige Umsetzung der Skelettierung l¨asst sich in Klette und Zamperoni (1995) finden. Die hier im Folgenden vorgestellte Umsetzung ist nach Abmayr (1994) formuliert. Der Unterschied besteht bei den beiden Realisierungen lediglich in den unterschiedlichen Skelettierungsmasken. An eine Skelettlinie werden die folgenden Bedingungen gestellt: Breite der Linie gleich 1 Pixel. Linie muss in der Mitte des Objektes verlaufen und zu allen Randpunkten den gleichen Abstand haben. Skelettlinie darf nicht weiter verdunnt ¨ werden, auch wenn weitere Abmagerungsoperationen durchgefuhrt ¨ werden. In der Regel muss nach der Skelettierung eine so genannte Entbartung der Ske¨ lettlinie durchgefuhrt ¨ werden, da sich u.U. storende ¨ Aste am Skelett befinden. Eine mogliche ¨ Realisierung der Skelettierung kann durch die in Abbildung 3.6 dargestellten acht 3 × 3-Masken (SE) durchgefuhrt ¨ werden. 1 S E 0=
b
b 0
1
1
0
b
b
0
S E 1=
0 S E 4=
b 1 b
0
b
1
b
S E 2= 0
1
S E 5= 1
0
1
b 1
0
1
b
0 0
0
b
1
b
1
1
b
1
1
0
0
b
S E 6=
1 0
b 0
1
1
b
1
b 1
S E 7=
1 0
b
0
b 1
b
0
S E 3=
b
b
0
0 0
1 b
1
b 0 0
0
Abbildung 3.6: Acht SE zur Skelettierung in Bin¨arbildern. Dabei bedeutet 0“ : der Bild” punkt darf nicht gesetzt sein bzw. 1“ : der Bildpunkt muss gesetzt sein. b“ steht fur ¨ be” ” liebig
Die Reihenfolge der Anwendung der SE ist von wesentlicher Bedeutung, da sie das Aussehen der Skelettlinie bestimmt. Das Suchen spezieller Bitmuster ist typisch fur ¨ Skelettlinien. Wenn keine bestimmten Bitmuster gefunden wurden, dann wird der Randpunkt gem¨aß Richtung des SE geloscht. ¨ Egal, welche Reihenfolge realisiert wird, es sollte darauf geachtet werden, dass gegenuber ¨ liegende Richtungen hintereinander ausgefuhrt ¨ werden, um auftretende Artefakte moglichst ¨ klein zu halten. Der Verdickungoperator sei an dieser Stelle nur der Vollst¨andigkeit halber
3.4 Zusammenfassung
33
erw¨ahnt. Er wird durch eine Mengenaddition eines Bildes E mit der hit-or-miss“” Operation E X ) realisiert: A = E X = E ∪ (E X)
(3.6)
U.a. dient er der Sichtbarmachung von kleinen Objekten (z.B. Zellkerne in Bildern medizinischer Pr¨aparate).
3.4 Zusammenfassung In diesem Kapitel haben wir uns mit Bin¨arbildern besch¨aftigt. Wir haben einfache Operationen auf Bin¨arbilder kennen gelernt. Weiterhin haben wir gesehen, dass Bilder als Mengen aufgefasst und Operationen auf diesen Mengen durchgefuhrt ¨ werden konnen. ¨ Diese Operationen erlauben es uns, Strukturen in Bildern zu loschen, ¨ zu vereinfachen, zu vereinzeln oder auch auf ihre Skelettlinie zu reduzieren. Anwendungsgebiete der morphologischen Bildverarbeitung finden sich beispielsweise in der Industrie zur Detektion von Fehlstellen von Textilien (Muller ¨ und Nickolay (1994)). Auch in der Sicherheitskontrolle im Verkehrsfluss (Broggi (1995)) kommen morphologische Operationen zum Einsatz. Ein weiteres Anwendungsgebiet ist die Dokumentenverarbeitung. Hier werden zum Beispiel mittels hit-or-miss“ Merkmale aus Zeichen extrahiert (Bloomberg und Vincent (1995)). ” ¨ Die korrespondierenden Ubungsaufgaben finden sich im Anhang C.2.
Kapitel 4
Vorverarbeitung In diesem Kapitel geht es um die Aufbereitung respektive die Verbesserung des durch ein bildgebendes Verfahren gewonnenen digitalen Bildes. Die im Folgenden diskutierten Methoden fallen alle unter den Begriff der (Bild-) Vorverarbeitung (engl. preprocessing). In der Literatur findet sich auch der Begriff der Bildrestauration oder nur der Restauration. Wir wollen uns im Wesentlichen auf die Bereiche Kontrastverst¨arkung (Abschnitt 4.1), Rauschunterdruckung ¨ (Abschnitt 4.2) sowie auf Operationen zur geometrischen Entzerrung (Abschnitt 4.3) konzentrieren. Die Vorverarbeitung kann sowohl auf Bin¨arbilder durch bereits ¨ bekannte Operationen aus der Morphologie wie Offnen und/oder Schließen als auch auf Grauwert- und/oder Farbbilder angewendet werden. Diese Transformationen/Operationen lassen sich auch in so genannten Bildpunktoperationen, in lokale Nachbarschaftsoperationen und in globale Nachbarschaftsoperationen einteilen. Die Bildpunktoperationen beziehen sich nur auf jeweils einen einzelnen Bildpunkt des Eingabebildes E( x, y), der beispielsweise mittels einer so genannten Look-Up-Table (LUT) in den entsprechenden Bildpunkt des Ausgabebildes A( x, y) transformiert wird. Lokale Nachbarschaftsoperationen berucksichtigen ¨ zur Berechnung des Bildpunktes A( x, y) nicht nur E( x, y), sondern zus¨atzlich die lokale Umgebung – zum Beispiel 3 × 3 oder 5 × 5, ... – um E( x, y). Globale Nachbarschaftsoperationen berucksichtigen ¨ das gesamte Eingabebild E, um einen Bildpunkt in A( x, y) zu bestimmen. Gerade die Operationen, die eine Nachbarschaft berucksichtigen, ¨ sind von beson-
36
4 Vorverarbeitung
derer Wichtigkeit, da ein Bildpunkt in der Regel immer mit seiner Nachbarschaft mehr oder weniger stark korreliert ist. An dieser Stelle sei allerdings noch angemerkt, dass die beste Vorverarbeitung keine Vorverarbeitung ist. Das bedeutet, dass man schon bei der Bildgebung dafur ¨ Sorge tragen sollte, bestmogliche ¨ Aufnahmen zu erhalten, damit keine Vorverarbeitung notig ¨ ist. Also sollte darauf geachtet werden, dass die aufzunehmende Szene zum Beispiel moglichst ¨ optimal ausgeleuchtet ist, damit keine Kontrastverst¨arkung notwendig wird. Ebenso sollte darauf geachtet werden, dass ein dem bildgebenden Verfahren inh¨arentes Rauschen auf ein Minimum reduziert wird, etc.
4.1 Kontrastverbesserung In einigen F¨allen kann durch das bildgebende Verfahren das digitale Bild kontrastarm sein, beispielsweise bei Fotografien von mikroskopischen Objekttr¨agern. Oder – wer kennt das nicht – bei eigenen Fotografien, die nicht richtig ausgeleuchtet sind. Ebenso ist bei den neueren Digitalkameras (haupts¨achlich im so genannten End-Consumer-Bereich) die Aufnahmequalit¨at nicht unbedingt die beste. Hier mochte ¨ man nachtr¨aglich noch die Moglichkeit ¨ haben, den Kontrast zu verbessern. Es existieren verschiedene Wege, um den Kontrast zu verbessern. Das kann w¨ahrend des bildgebenden Prozesses zum Beispiel durch Look-Up-Tables geschehen oder auch nachtr¨aglich durch eine Transformation, die die Grauwerth¨aufigkeiten manipuliert. Des Weiteren kann, wie bereits erw¨ahnt, Rauschen auf dem Bild vorhanden sein, das zum Beispiel durch so genannte Rauschfilter reduziert werden kann. Die in den folgenden Abschnitten vorgestellten Operationen sind in der Regel Bildpunktoperationen, da sie den Intensit¨atswert eines Bildpunktes nur aufgrund des Intensit¨atswertes ver¨andern und eine (wie auch immer geartete) Nachbarschaft nicht mit berucksichtigen. ¨ Die Mehrzahl dieser Operationen ist homogen, was bedeutet, dass alle Bildpunkte E( x, y) mit derselben Transformationsvorschrift bearbeitet werden. Die im Abschnitt 4.1.3 beschriebene Hintergrundkompensation ist ein Beispiel fur ¨ eine inhomogene Bildpunktoperation.
4.1.1 Look-Up-Table (LUT) Die LUT ist eine homogene Grauwerttransformation, bei der die Intensit¨atswerte in einer vordefinierten Art und Weise (eben der LUT) modifiziert werden. Hierbei werden die Grauwerte E( x, y) einer Grauwertskala durch eine Funktion oder ¨ uhrt. ¨ Eine LUT kann man eine Tabelle in ein neue Grauwertskala A( x, y) uberf verstehen als einen Speicher, der unter der Adresse a einen bestimmten Inhalt b
4.1 Kontrastverbesserung
gespeichert hat.
37
b = LUT ( a)
(4.1)
Immer, wenn die Adresse a angesprochen wird, wird der Speicherinhalt b zuruck¨ gegeben. Bezieht man das auf Grauwerte, wird schnell ersichtlich, dass der Inhalt (entspricht einem neuen Grauwert) immer dann zuruckgegeben ¨ wird, wenn ein bestimmter Grauwert im Eingabebild E auftritt (entspricht der Adresse). Soll eine LUT als Diagramm dargestellt werden, so ist es ublich, ¨ auf der Abszisse (x-Achse – entspricht in Gl. 4.1 dem a) die Eingabebildgrauwerte, und auf der Ordinate (y-Achse – entspricht in Gl. 4.1 dem b) die Ausgabebildgrauwerte abzutragen. Im Folgenden werden ein paar Beispiele fur ¨ Transformationsfunktionen (auch Kennlinien) grafisch und analytisch dargestellt. In Abbildung 4.1(a) ist eine lineare Kennlinie dargestellt, die die Eingangswerte x (also die Intensit¨atswerte von 0..255) auf gleichwertige Ausgangswerte LUT ( x) (0...255) abbildet, was bedeutet, dass das Eingabebild unver¨andert in das Ausgabebild transformiert wird (x = LUT ( x) – oder einfacher: x = y).
(a)
(b)
(c)
Abbildung 4.1: Drei unterschiedliche Kennlinien, die eine LUT symbolisieren: (a) lineare, (b) quadratische und (c) Wurzelkennlinie. Die Achsen gehen jeweils von 0 bis 255. Die xAchse steht fur ¨ die Werte des Eingangsbildes und korrespondierend dazu lassen sich die Werte fur ¨ das Ausgangsbild an der y-Achse ablesen
Abbildung 4.1(b) zeigt eine quadratische Kennlinie, die die mittleren Intensit¨atsx2 . Die 255 im werte ein wenig abschw¨acht. In analytischer Form w¨are das: y = 255 Nenner sorgt dafur, ¨ dass die Intensit¨atswerte im darstellbaren Grauwertbereich bleiben. Abbildung 4.1(c) zeigt eine Wurzelkennlinie. Sie schw¨acht die mittleren Grauwerte etwas. Dafur ¨ wird in den hellen und den dunklen √ Grauwertbereichen der Kontrast verst¨arkt. In analytischer Form w¨are das y = 255x (auch hier dient die 255 zur Normierung). Weitere Funktionen, die als LUT-Kennlinie dienen konnen, ¨ w¨are eine Binarisierungskennlinie. Sie l¨asst sich durch eine entsprechende Kennlinie1 ebenfalls er1
Binarisierungkennlinie mit x u und x o als beliebige untere bzw. obere Grenze: y = { 0, wenn x <
38
4 Vorverarbeitung
reichen. Ebenso konnen ¨ solche Kennlinien auch stuckweise ¨ linear sein. Auch die explizite Angabe von Werten in der LUT ist denkbar. Allen LUTs gemein ist die Tatsache, dass der Inhalt der jeweiligen LUT (die Werte fur ¨ das Ausgangsbild A) lediglich einmal berechnet werden muss. Sie werden dann im Anschluss nur noch abgefragt. Die LUT-Operationen sind in der Regel sehr schnell und werden von einigen Bildverarbeitungssystemen unterstutzt. ¨ Fur ¨ den 2D-Fall (ein Bild mit M Zeilen und N Spalten) kann eine allgemeine Form einer LUT wie folgt festgelegt werden: A( x, y) = LUT ( E( x, y))
(4.2)
mit x = 0, ..., M − 1 und y = 0, ..., N − 1.
4.1.2 Histogrammtransformationen Zun¨achst soll kurz erl¨autert werden, was ein Histogramm ist und wie man es berechnet, da wir dies fur ¨ das Verst¨andnis des Folgenden benotigen, ¨ um Kontrastverbesserungen durchzufuhren. ¨ Ein Histogramm berechnet die Grauwerth¨aufigkeit eines Bildes. Hierzu werden die einzelnen Bildpunkte einer bestimmten Graustufe in ihrer H¨aufigkeit H abgez¨ahlt und uber ¨ die gesamte Grauwertskala i abgetragen. Dies wird auch als Statistik erster Ordnung bezeichnet. Das so berechnete Histogramm H (i ) ist eine diskrete Funktion. Aus dem Histogramm H (i ) l¨asst sich durch Normierung auf die Anzahl der betrachteten Bildpunkte N die relative Histogrammverteilung h(i ) bestimmen: h (i ) =
H (i ) N
(4.3)
Die Histogrammtransformationen ver¨andern a¨ hnlich wie die LUTs die Grauwerte im Bild. Allerdings wird hierbei die Grauwertverteilung erst nach der Bildaufnahme ver¨andert. D.h.: Es muss ein digitales Bild vorliegen. Von diesem Bild wird zun¨achst ein Histogramm H E (i ) (mit E als Eingabebild und i Anzahl der Intensit¨atswerte respektive Grauwerte) berechnet. Histogramme konnen ¨ gedehnt werden, d.h. ein Grauwertbereich von i u bis io (mit iu = 0 und io = MAXGW = 255) wird auf einen Bereich von 0 bis MAXGW abgebildet. Eine weitere Moglichkeit, ¨ Histogramme zu ver¨andern, ist die so genannte Histogrammebnung oder auch Histogramm¨aqualisation, bei der die Verteilung der Grauwerte so ver¨andert wird, dass uber ¨ eine vorgegebene Anzahl von Grauwerten die tats¨achlich vorhandenen Bildpunkte mit ihren zugehorigen ¨ Grauwerten gleich verteilt werden.
xu ∧ x > xo |1, wenn x u ≤ x ≤ xo }
4.1 Kontrastverbesserung
39
Dehnung der Grauwertskala Eine allgemeine Dehnung einer Grauwertskala kann durch folgende Gleichung 4.4 beschrieben werden: A( x, y) = m · E( x, y) + b
(4.4)
In Abbildung 4.2 ist das allgemeine Prinzip einer Grauwertdehnung grafisch dargestellt. Die Konstante m kann als Kontrast angesehen werden und die Konstante b als Helligkeit. Ist der Kontrast m > 1, so wird der Kontrast im Ausgabebild A erhoht. ¨ Ist der Kontrast m < 1, so wird der Kontrast im Ausgabebild A vermindert. Durch die additive Konstante b wird die Helligkeit des Bildes A beeinflusst. Hiermit kann das gesamte Bild aufgehellt oder verdunkelt werden. Der Kontrast m entspricht der Steigung der Geraden in der Abbildung und die Helligkeit b ist die Grauwertverschiebung. Eine Umsetzung findet dieses Prinzip beispielsweise bei einem herkommlichen ¨ Fernsehger¨at, bei dem der Kontrast und auch die Helligkeit durch eine elektronische Widerstandsver¨anderung auf die Bedurfnisse ¨ des jeweiligen Betrachters angepasst werden konnen. ¨ G ra u w e rte A u s g a b e b ild ) 6 4 G W E 2 , G W A 2
4 8
m G W E 1 , G W A 1
3 2
=
G W A 2 - G W A 1 G W E 2 - G W E 1
1 6 > 0
1 6
3 2
4 8 6 4 G ra u w e rte E in g a b e b ild -
Abbildung 4.2: Allgemeines Prinzip der Grauwertdehnung
Fur ¨ den diskreten Fall sollte der Grauwertbereich auf den darstellbaren Bereich eingegrenzt werden. Unter der Annahme, dass es sich bei einem Grauwertbild um ein 8 Bit-Bild handelt, ist der gultige ¨ Darstellungsbereich das Intervall von 0 bis 255. Dadurch ergibt sich folgende angepasste Gleichung einer allgemeinen Vorschrift zur Dehnung der Grauwertskala: 0, 255, A( x, y) = m · E( x, y) + b,
m · E( x, y) + b < 0 m · E( x, y) + b > 255 sonst
(4.5)
40
4 Vorverarbeitung
Wenn wir die tats¨achlichen Grauwerte eines digitalen Bildes betrachten, so stellen wir u.U. fest, dass nicht immer der ganze mogliche ¨ Grauwertbereich ausgeschopft ¨ wird. Dies mag durch das zugrunde liegende bildgebende Verfahren verursacht sein. ¨ Null Das Eingabebild E weist also einen minimalen Grauwert Emin auf, der großer ist, und einen maximalen Grauwert Emax , der kleiner 255 ist. Ein Ausgabebild soll den minimalen Grauwert Amin und den maximalen Grauwert A max nach der Transformation aufweisen. In der Abbildung 4.3 ist grafisch das Schema einer solchen Kennlinie dargestellt. G ra u w e rte : B ild ) 2 5 5 A
A
m a x
m in
0 0
E
m in
E
m a x
2 5 5
G ra u w e rte : B ild -
Abbildung 4.3: Beispiel: Kontraststeigerung durch eine Kennlinie
Fur ¨ den beschriebenen Fall E min ≤ E( x, y) ≤ E max und Amin ≤ A( x, y) ≤ A max druckt ¨ die folgende Beziehung (vgl. Gl. 4.6) eine allgemeine Kontraststeigerung aus: Amax − Amin · ( E( x, y) − E min ) + Amin (4.6) A( x, y) = Emax − Emin Geht man von Amin = 0 und Amax = 255 aus, so l¨asst sich vereinfacht schreiben: A( x, y) =
255 · ( E( x, y) − E min ) Emax − Emin
(4.7)
Es kann auch der Fall eintreten, dass der minimale Grauwert E min und der maximale Grauwert E max nur von sehr wenigen Bildpunkten erreicht werden, so dass es durchaus sinnvoll erscheint, diese Grauwerte abzuschneiden durch ein so genannter clipping, um eine verst¨arkte Kontrastanhebung zu erzielen. Dann wird nicht das gesamte Intervall E max − Emin benutzt, sondern ein abweichencl cl cl des E cl max − E min , mit E min < E min < E max < E max . Diese angepassten Grenzen werden sinnvollerweise so gew¨ahlt, dass in den Intervallen [ Emin : E cl min ] bzw. [ Emax : Ecl ] nur eine geringe Anzahl von Bildpunkten liegt. Der Großteil der max
4.1 Kontrastverbesserung
41
cl Bildpunkte sollte dann schon im Intervall [ Ecl max : E min ] liegen. Typischerweise w¨ahlt man die neuen Grenzen so, dass sich in dem neuen Intervall 95%–99% der Bildpunkte befinden.
Histogrammebnung Zus¨atzlich zu den bisher vorgestellten Skalierungsverfahren in den vorangegangenen Abschnitten existieren eine Reihe weiterer Verfahren zur Histogrammmodifikation. Ein weiteres Verfahren wird im Folgenden vorgestellt. Dieses Verfahren bezieht sich auf die Modifikation von H¨aufigkeiten, mit denen ein Grauwert im Bild vorkommt. Ein ubliches ¨ Verfahren ist hier die Histogrammebnung. Bei der Histogrammebnung werden alle Grauwerte so transformiert, dass sie nach der Transformation mit gleicher H¨aufigkeit PA ( g) im Bild vorkommen (Haber¨acker (1985)). Im Ergebnisbild A ist PA ( g) =
1 , fur ¨ alle g ∈ G. Ng
Nach Haber¨acker (1985) bewirkt eine Histogrammebnung bei naturlichen ¨ Bildern eine Verbesserung der Helligkeit und des Kontrastes. Die Umsetzung der Histogrammebnung nach Rosenfeld und Kak (1982) in O RASIS 3D findet sich in Anhang B.2. Demzufolge gilt fur ¨ eine Histogrammebnung (eine Umsetzung der Histogrammebnung l¨asst sich im Anhang B.2 finden): E das Ursprungsbild mit N × M Bildpunkten und K Grauwerten z1 , . . . , z K . pi sei das Vorkommen der Bildpunkte im Bild des Grauwertes z i . Im entsprechenden Histogramm von E sei die Hohe ¨ des i-ten Balkens proportional zu pi . K
∑ pi = MN.
i=1
Die Anzahl der Punkte mit dem Grauwert z i im geebneten Histogramm sei qi . K
∑ qi = MN.
i=1
Ein wesentlicher Schritt ist die Transformation des Histogramms p nach q. Fur ¨ diesen Schritt gilt: k1 −1
∑
i=1
p i ≤ q1 ≤
k1
∑ pi .
i=1
Somit wird allen Bildpunkten in E mit den Grauwerten z1 , . . . , z k1 −1 in A der neue Grauwert z 1 zugeordnet. Ist diese Anzahl kleiner als q 1 , so muss zus¨atzlichen Punkten mit dem Grauwert zk1 der Grauwert z 1 zugeordnet werden, um
42
4 Vorverarbeitung
die noch fehlenden Punkte fur ¨ q1 zu erhalten. Diese zus¨atzlichen Punkte konnen ¨ zuf¨allig oder in Abh¨angigkeit von den Grauwerten benachbarter Punkte gew¨ahlt werden. Fur: ¨
k2 −1
∑
i=1
p i ≤ q1 + q2 ≤
k2
∑ pi .
i=1
ergeben sich aus dieser Ungleichung die Punkte, denen der Grauwert z 2 zuzuordnen ist, und zwar: Unter der Voraussetzung k 2 > k1 wird allen Punkten mit dem Grauwert zk1 , denen nicht bereits der Grauwert z 1 zugeordnet wurde, der Grauwert z 2 zugewiesen. Falls k2 = k1 , mussen ¨ die Punkte mit dem Grauwert zk1 weiter geteilt werden. Allen Punkten mit zk1 +1 , . . . , z k2 −1 als Grauwerten. Ist die Anzahl kleiner als q2 , so muss zus¨atzlichen Punkten mit dem Grauwert zk2 der Grauwert z 2 zugewiesen werden. Dementsprechend sind fur ¨ das resultierende Histogramm die Schritte fur ¨ die Grauwerte z 3 , . . . , z K fortzusetzen. Es gilt im Allgemeinen fur ¨ zh : kh −1
∑
i=1
pi ≤
h
kh
i=1
i=1
∑ qi ≤ ∑ p i .
Nach Gool u. a. (1985) stellt eine solche Normierung, bei der die Statistiken erster Ordnung der resultierenden Bilder in jeder Hinsicht ubereinstimmen, ¨ sicher, dass ein Bild, das eine monotone Transformation eines Originalbildes darstellt, dieselben Resultate bei der Berechnung von Statistiken zweiter Ordnung liefert. Histogramme sind ja gerade Statistiken erster Ordnung (vgl. Kapitel 6). Nachteilig gegenuber ¨ den in den vorangegangenen Abschnitten vorgestellten Verfahren ist, dass zum einen der Berechnungsaufwand großer ¨ ist, und zum anderen, dass die Bildinformation ver¨andert wird, je nachdem, wie unterschiedlich die Histogramme des Originalbildes und das geebnete Histogramm sind. Ebenso hat die Strategie, nach der die noch nicht sortierten Bildpunkte ausgew¨ahlt werden, Einfluss auf Ver¨anderung. Weiterhin kann der visuelle Eindruck eines Bildes verf¨alscht werden, weil die Auswahl der Bildpunkte zuf¨allig war, um die ebene Form des Histogramms zu erreichen. Ein Beispiel fur ¨ eine solche Verf¨alschung ist in Abbildung 4.4 zu sehen. Das Histogramm des Schachbrettmusters in Abbildung 4.4 (a) wurde geebnet. Das Ergebnis ist, dass die vorher einfarbigen Fl¨achen nach der Ebnung als Grauwertverl¨aufe (siehe Abbildung 4.4 (b)) hervortreten. Die Grauwertverl¨aufe kommen
4.1 Kontrastverbesserung
43
(a)
(b)
Abbildung 4.4: Histogrammebnung, angewendet auf ein Schachbrettmuster (a). Man erkennt deutlich die Verf¨alschungen in dem geebneten Bild (b)
durch die Auswahl der zu a¨ ndernden Bildpunkte zustande, da hier jeweils immer der erste Punkt gew¨ahlt wird. Wurden ¨ die Punkte zuf¨allig ausgew¨ahlt, so entstunde ¨ eine Art von Rauschen auf den schwarzen und weißen Fl¨achen.
4.1.3 Shadingkorrektur Im Allgemeinen geht man davon aus, dass bildgebende Verfahren eine realistische Abbildung des abzubildenden Objektes liefern. Das bedeutet, dass eine gleichm¨aßig helle Fl¨ache in der realen Welt auch einer entsprechend gleichm¨aßigen hellen Fl¨ache im digitalen Abbild entspricht. Oftmals ist dem digitalen Bild allerdings ein so genanntes Hintergrundsignal durch das bildgebende Verfahren uberlagert. ¨ Dieses Signal kann eine Inhomogenit¨at der Beleuchtung verursachen. Sind diese Storeinfl ¨ usse ¨ bekannt, konnen ¨ sie in einer so genannten Shadingmatrix gespeichert werden. Mittels der Shadingmatrix kann dann das jeweilige Bild durch eine Shadingkorrektur (auch: Hintergrundkompensation) verbessert bzw. der Fehleranteil im Signal minimiert werden. Diese Operation kann multiplikativ oder additiv erfolgen. Hierzu wird das Bild, respektive die Bildmatrix, E( x, y) mit der entsprechenden Shadingmatrix verknupft. ¨ Die Shadingmatrix ergibt sich aus ¨ einer Aufnahme eines so genannten Weißbildes Ewhite ( x, y), mit maximal geoffneter Blende sowie mit maximaler Beleuchtung. Der mittlere Weißwert W wird bestimmt. Des Weiteren wird das Gegenstuck ¨ zum Weißbild, das so genannte Schwarzbild E black ( x, y) (bei geschlossener Blende und ohne Beleuchtung), bestimmt sowie der mittlere Schwarzwert S berechnet. Das Weißbild beinhaltet allgemeines Rauschen, den Ausleuchtungsfehler und auch Inhomogenit¨aten in den photo-elektrischen Schichten des bildgebenden Systems. Das Schwarzbild beinhaltet ein gewisses Widerstandsrauschen. Die additive Shadingkorrektur E A ( x, y) wird durch die folgende Beziehung bestimmt: E A ( x, y) = E( x, y) − E white ( x, y) + W − S
(4.8)
44
4 Vorverarbeitung
Die multiplikative Shadingkorrektur E M ( x, y) wird durch die folgende Beziehung bestimmt: E M ( x, y) = E( x, y)
W −S Ewhite( x, y)
(4.9)
Die Hintergrundkompensation erlaubt die globale Behandlung aller Hintergrundfehler. Die Shadingmatrix selbst kann durch Gl¨attungsoperatoren (vgl. Abschnitt 4.2.2) von Storpartikeln ¨ (Rauschpixel) befreit werden.
4.2 Rauschunterdruckung ¨ Rauschen ist ein in der Regel dem Bild uberlagertes ¨ Signal, das das Bild verf¨alscht. Es treten sozusagen Unebenheiten in den Intensit¨atswerten oder auch hohe Frequenzen im Bild auf. Diese Unebenheiten sollen Rauschunterdruckungsverfahren ¨ (auch: Gl¨attungsverfahren) vermindern oder gar beseitigen. Das ideale Ziel ist, genau diese Frequenzen oder Unebenheiten zu beseitigen, ohne dass das restliche Signal – sprich: Bild – von dieser Gl¨attung beeinflusst wird. Es existieren lineare und nichtlineare Verfahren, die diese Forderung z.T. erfullen. ¨
4.2.1 Morphologische Operationen In Kapitel 3 haben wir schon eine einfache Art der Gl¨attung eines Bin¨arbildes kennen gelernt. Durch die morphologische Operation2 Erosion konnen ¨ – je nach Wahl des verwendeten strukturierenden Elementes – einzelne Bildpunkte geloscht ¨ werden. Diese einzelnen Bildpunkte sind im Allgemeinen Rauschpunkte, die zur Weiterverarbeitung – der Segmentierung, der Merkmalsextraktion und Klassifikation – nicht notwendig bzw. eher storend ¨ sind. ¨ Ebenso haben die morphologischen Operationen Offnen oder Schließen Einfluss auf einzelne Bildpunkte. Auch hier konnen ¨ einzelne Bildpunkte aus dem Bild geloscht ¨ werden, da ja auch hier die Erosion als Grundoperation angewendet wird.
4.2.2 Filterbasierte Rauschminderung Die filterbasierte Gl¨attung l¨asst sich zu den lokalen Bildpunktoperationen z¨ahlen, die in der Regel auf Grauwertbilder berechnet werden. Grundlage dieser Operationen ist die diskrete Faltung von digitalen Bildern (im zweidimensionalen Fall). Zun¨achst wollen wir uns also mit der diskreten Faltung besch¨aftigen, um dann 2 Schon bei den simplen Operationen auf Punktegruppen (vgl. Abschnitt 3.1) wird durch die Operation Shrink eine Moglichkeit ¨ zur Gl¨attung in Bin¨arbildern gegeben.
4.2 Rauschunterdruckung ¨
4 5 4 9 ...
5 5 3 9
5 3 2 8
4 7 6 8
45
3 7 6 9
4 7 8 9
1 9
1 1 1
1 1 1
4 6
1 1 1
5 6
5 6
6 7
(b) FM (a) E
(c) A
Abbildung 4.5: Diskrete Faltung: Das Eingabebild E (a) wird mit der Filtermaske F M (b) gefaltet. Im Ausgabebild A (c) sind gerundete Werte dargestellt, da die jeweilige Summe der einzelnen Bildpunkte mit 19 multipliziert werden muss, damit der berechnete Wert im Ausgabebild im darstellbaren Bereich [0...255] bleibt
ubliche ¨ Gl¨attungsoperatoren kennen zu lernen und deren Funktionsweise zu verstehen. Wir wollen uns das Prinzip der diskreten Faltung mittels einer 3 × 3 Filtermaske FM verdeutlichen3 (man kann sich diese Maske auch als Blende vorstellen), die uber ¨ ein Eingabebild E geschoben“ wird und damit die gewichtete Summe innerhalb ” dieser Blende fur ¨ das Ausgabebild A berechnet. In der folgenden Abbildung 4.5 ist ein Beispiel fur ¨ eine diskrete Faltung dargestellt: In analytischer Form bedeutet das fur ¨ Bildpunkt A 22 des Ausgabebildes A: FM11 · E11 A22 = FM21 · E21 FM31 · E31
+ FM12 · E12 + FM22 · E22 + FM32 · E32
+ FM13 · E13 + FM23 · E23 + FM33 · E33
(4.10)
Ausgedruckt ¨ in Zahlen (fur ¨ das Beispiel in Abbildung 4.5):
A22
1·4 1 1·5 = 9 1·4
+1 · 5 +1 · 5 +1 · 5 +1 · 3 = 4 +1 · 3 +1 · 2
(4.11)
Entsprechend der Vorschrift aus Gleichung 4.10 mussen ¨ nun alle weiteren Bildpunkte berechnet werden. Die ubliche ¨ Schreibweise fur ¨ eine diskrete Faltung lautet: A = FM ∗ ∗ E mit dem Operator ∗∗ fur ¨ die zweidimensionale diskrete Faltung. Die allgemeine Form der diskreten Faltung eines Bildes E mit einer Filtermaske
3
Fur ¨ dieses Beispiel wird das Randproblem – s.u. – vernachl¨assigt.
46
4 Vorverarbeitung
(oder auch Faltungsmaske) FM im zweidimensionalen Fall lautet: A( x, y) = k 1
+k
+l
∑ ∑
i =−k j =−l
FM (i, j) E( x + i, y + j) + k o
(4.12)
k0 und k1 sind Konstanten, die zur Skalierung auf den erlaubten Intensit¨atswertbereich (Grauwertbereich) benotigt ¨ werden (vgl. Skalierungsfaktor 19 in Gleichung 4.11). FM (i, j) sind die Koeffizienten der Faltungsmaske. I.d.R. hat die Maske (2k + 1) Spalten und (2l + 1) Zeilen. Das bedeutet, dass in der Praxis meistens quadratische Masken der Großen ¨ 3 × 3, 5 × 5, ... verwendet werden, da in diesem Fall der Bezugspunkt der Maske zentral ist. Ein paar Worte noch zu dem hier auftretenden so genannten Randproblem. Die lokale Nachbarschaft fur ¨ die Randpunkte ist nicht definiert. In unserem Beispiel ist der Rand lediglich ein Pixel breit. Das ist im Allgemeinen nicht sehr tragisch. Werden die Faltungsmasken allerdings großer, ¨ so bleiben u.U. sehr viele Bildpunkte des Randes unberucksichtigt. ¨ Die folgenden Moglichkeiten, ¨ das Randproblem anzugehen, sind nur eine Auswahl der ublichsten ¨ Alternativen. Eventuell sind andere Moglichkeiten ¨ fur ¨ ein spezielles Problem sinnvoller als die hier genannten: Die nicht berucksichtigten ¨ Randpunkte werden einfach weggelassen. Das bedeutet, dass bei einer Maskengroße ¨ von (2k + 1) × (2k + 1) ein k breiter Rand weggelassen wird. Wird evtl. iterativ gefaltet, so kann das Bild sehr schnell sehr klein werden ... Die entsprechenden Randpunkte des Eingabebildes (oder bei Iteration des Vorg¨angerbildes) werden kopiert. Das Bild wird periodisch fortgesetzt. Diese Moglichkeit ¨ ist unter systemtheoretischen Gesichtspunkten die optimale (vgl. Wahl (1989)). Nachdem wir uns die diskrete Faltung angesehen haben, kommen wir im Folgenden zu den drei wohl bekanntesten Gl¨attungsoperatoren. Zun¨achst wird der klassische Mittelwertfilter besprochen. Im Anschluss wird der Medianfilter als ein nichtlinearer Filter vorgestellt, und zum Schluss eine Erweiterung“ des Mittel” wertfilters, der Gaußfilter. Mittelwertfilter Der Mittelwertfilter oder auch Average-Filter (auch Average-Operator) berechnet den mittleren Intensit¨atswert innerhalb einer lokalen Nachbarschaft, die durch die Große ¨ des Filters bestimmt wird. Der so ermittelte neue“ Intensit¨atswert wird im ” Ausgabebild dem Bezugspunkt zugewiesen. Dadurch wird eine Gl¨attung der Unebenheiten in den Grauwerten erzielt. Der Mittelwertfilter wird auch manchmal als bewegter Mittelwertfilter bezeichnet. Fur ¨ eine Umsetzung des Mittelwertfilters in O RASIS3D siehe Anhang B.3.
4.2 Rauschunterdruckung ¨
47
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1 1
1 1
(a)
1
(b)
(c)
Abbildung 4.6: Verschiedene Mittelwertfilter: (a) Mittelwertfilter bzgl. einer 4er Nachbarschaft, (b) Mittelwertfilter bzgl. einer 8er Nachbarschaft und (c) gewichteter Mittelwertfilter bzgl. einer 8er Nachbarschaft. Die Bezugspunkte sind jeweils in der Mitte
In Abbildung 4.6 (a) ist ein Mittelwertfilter bzgl. einer 4er Nachbarschaft im Rechteckraster dargestellt. Der Skalierungsfaktor fur ¨ diese Maske betr¨agt 15 . Der Mittelwertfilter ist ein homogener, lokaler und linearer Filter. Im Frequenzbereich entspricht der Mittelwertfilter einem so genannten Tiefpass (s. auch Kapitel 11), der nur die niedrigen Frequenzen durchl¨asst. Oder andersherum, der Sperrbereich des Filters sind die hohen Frequenzen. Eine andere Form des Mittelwertfilters, die wohl am h¨aufigsten verwendet wird, ist in Abbildung 4.6 (b) bzgl. einer 8er Nachbarschaft im Rechteckraster dargestellt. Der Skalierungsfaktor betr¨agt fur ¨ diese Filtermaske 19 . Diese Filtermaske wird auch als ungewichtet bezeichnet, da alle Koeffizienten gleich gewichtet sind. Von einem gewichteten Mittelwertfilter spricht man dann, wenn der mittlere Punkt in der Filtermaske (auch Bezugspunkt) beispielsweise – wie in Abbildung 4.6 (c) dargestellt ist – doppelt gewichtet wird. Der Skalierungsfaktor betr¨agt fur ¨ 1 . diese Maske 10 Wird ein Mittelwertfilter angewendet, so werden nicht nur die Grauwertunebenheiten sondern auch die Diskontinuit¨aten im Grauwertsignal (Kantenuberg¨ ¨ ange) gegl¨attet. Dies bedeutet, dass auch Kanten durch eine Mittelwertgl¨attung an ihrer ursprunglichen ¨ Steilheit verlieren. Die Kantenuberg¨ ¨ ange werden also nicht nur ver¨andert, sondern verf¨alscht. In der folgenden Abbildung 4.7 ist ein weiteres Beispiel fur ¨ eine Mittelwertfilterung und somit eine Gl¨attung des Bildes zu sehen. Man kann deutlich erkennen, dass im Ausgabebild der storende ¨ Punkt im Eingabebild mit dem Intensit¨atswert 13“ einen erheblichen Einfluss auf seine Nachbarpunkte hat. Durch die Faltung ” mit einem Mittelwertfilter heben sich die Intensit¨atswerte in der Nachbarschaft an. Medianfilter Ein Gl¨attungsoperator, der die Steilheit der Kanten in der Regel nicht beeinflusst, ist der nichtlineare Medianfilter (vgl. Anhang B.4). Dieser Filter ist ein Rangfolgen-
48
4 Vorverarbeitung
4 4 4 4 4 ...
4 4 4 4 4
4 4 13 4 4
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4
1 9
1 1 1
1 1 1
1 1 1
5 5 5 4
5 5 5 4
5 5 5 4
4 4 4 4
(b) FM (a) E
(c) A
Abbildung 4.7: Gl¨attung von Bild E (a) durch Mittelwertfilter (b). Deutlich wird der Einfluss eines einzelnen Storpixels ¨ auf seine Nachbarn im Ausgabebild A (c)
filter (auch: Rangordnungsfilter), der fur ¨ eine bestimmte Nachbarschaft (3 × 3, 4 × 5, ...) die Bildpunkte nach der Große ¨ des Intensit¨atswertes sortiert. 4 Der mittlere Wert aus der sortierten Liste der Intensit¨atswerte ist dann der neue Intensit¨atswert fur ¨ das gegl¨attete Ausgabebild. Beispielsweise ist fur ¨ eine 3 × 3-Nachbarschaft der mittlere Wert an der Stelle 5 zu finden. Fur ¨ eine 5 × 5-Nachbarschaft ist der mittlere Wert an der Stelle 13 zu finden, etc. Als Beispiel sollen uns die Bilder aus Abbildung 4.5 dienen. Wird ein 3 × 3Medianfilter uber ¨ das Eingabebild geschoben, so ergibt sich im Ausgabebild an der Stelle A 32 eine 5 statt einer 6, die beim Mittelwertfilter berechnet wurde. Interessanterweise ist die erste berechnete Zeile im Ausgabebild fur ¨ Median- und Mittelwertfilter gleich. Ein weiteres Beispiel zur Verdeutlichung soll das Bild aus Abbildung 4.8 sein. Geht man vom gleichen Eingabebild aus Abbildung 4.8 (a) aus und verwendet dieses Mal den Medianfilter, so ist das Ergebnis im Ausgabebild optimal. Das Storpixel ¨ mit dem Intensit¨atswert 13“ ist herausgefiltert, ohne Einfluss auf die ” Nachbarschaft zu haben. Dieser Sachverhalt ist in Abbildung 4.8 nochmals bildhaft wiedergegeben. Man kann deutlich die Unterschiede zu den Ergebnissen in Abbildung 4.7 erkennen. Gaußfilter Der Gaußfilter ist im Prinzip nur eine Erweiterung des gewichteten Mittelwertfilters. Das Zentrum wird analog zur Gauß-Glocken-Funktion st¨arker gewichtet als der Rand. Eine typische 3 × 3-Gaußfilter-Maske ist in Abbildung 4.9 dargestellt. Der Mittelpunkt √ und die direkten Nachbarn werden st¨arker gewichtet als die Nachbarn, die 2-Pixel vom Mittelpunkt entfernt sind – also die diagonalen 4 Bei großeren ¨ Filtermasken (so ab 11 × 11 Bildpunkten) ist es ratsam, sich fur ¨ die Implementierung des Sortieralgorithmus ein paar Gedanken zu machen. Ein Bubble-Sort-Algorithmus ist fur ¨ großere ¨ Filtermasken nur bedingt einsetzbar. Fur ¨ Sortierverfahren siehe zum Beispiel Sedgewick (1992) oder auch Wirth (1983)
4.2 Rauschunterdruckung ¨
4 4 4 4 4 ...
4 4 4 4 4
4 4 13 4 4
49
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4
Faltung mit 3 × 3Median
4 4 4 4
4 4 4 4
4 4 4 4
4 4 4 4
(b) A
(a) E
Abbildung 4.8: Gl¨attung durch Medianfilter und (der nicht vorhandene) Einfluss eines einzelnen Storpixels ¨ auf seine Nachbarn
Nachbarn. Der Skalierungsfaktor betr¨agt 1 2 1
2 4 2
1 16 .
1 2 1
Abbildung 4.9: Gaußfilter
In der folgenden Abbildung 4.10 ist das Eingabebild aus den Abbildungen 4.7 bzw. 4.8 mit dem Gaußfilter aus der Abbildung 4.9 gefiltert worden. Im Ausgabebild stehen mit Absicht die Nachkommastellen – obwohl diese fur ¨ eine Visualisierung auf den n¨achsten Intensit¨atswert (in diesem Fall 5“ ) gerundet wurden ¨ –, ” da dies die verbesserte Gl¨attung gegenuber ¨ einem einfachen Mittelwertfilter verdeutlicht. Die Berechnungsergebnisse fur ¨ die Intensit¨atswerte der einzelnen Pixel liegen bei ca. 4, 5625. Das ist gegenuber ¨ 5 bei der Mittelwertberechnung schon deutlicher am Ursprungswert 4. 4 4 4 4 4 ...
4 4 4 4 4
4 4 13 4 4
4 4 4 4 4
4 4 4 4 4
4 4 4 4 4
1 16
1 2 1
2 4 2
1 2 1
4, 6 4, 6 4, 6 4, 6 4, 6 4, 6 4 4
4, 6 4 4, 6 4 4, 6 4 4 4
(b) FM (a) E
(c) A
Abbildung 4.10: Gl¨attung durch Gaußfilter und Einfluss eines einzelnen Storpixels ¨ auf seine Nachbarn
Zum Abschluss dieses Abschnittes nochmals ein Beispiel fur ¨ eine Gl¨attung mittels eines Medianfilters auf einem durch Salz-und-Pfeffer-Rauschen gestorten ¨ Bild. In
50
4 Vorverarbeitung
Abbildung 4.11(a) ist ein durch Rauschen gestortes ¨ Bild mit einem zugehorigen ¨ Zeilenprofil zu sehen. Die Abbildung 4.11(b) zeigt das mit einem 5 × 5-Median gegl¨attete Bild ebenfalls mit dem zugehorigen ¨ Zeilenprofil der entsprechenden Zeile. Es sind sowohl im Bild als auch im jeweiligen Zeilenprofil die Storung ¨ und die Beseitigung der Storung ¨ zu erkennen.
(a)
(b)
Abbildung 4.11: Gl¨attung durch Medianfilter: (a) gestortes ¨ Bild mit Zeilenprofil und (b) gegl¨attetes Bild mit korrespondierendem Zeilenprofil. Screenshots der O RASIS 3D Oberfl¨ache. Diese Abbildung befindet sich auch auf der beiliegenden CD-ROM im Verzeichnis Abbildungen
4.3 Geometrische Entzerrung Die bisher vorgestellten Vorverarbeitungsoperationen bezogen sich lediglich auf den Intensit¨atswert (sprich: Grauwert) eines Bildpunktes, doch auf dessen Ortskoordinaten. Die im Folgenden beschriebenen einfachen, so genannten affinen Transformationen transformieren in der Regel die Ortskoordinaten eines Bildpunktes. Beispielsweise muss bei einem Vergleich von Bildern, die unterschiedliche Großen ¨ aufweisen, eine Art Großennormierung ¨ (Skalierung) durchgefuhrt ¨ werden. Ebenso kann es notwendig sein, Verzerrungen, die durch das bildgebende Verfahren entstanden sind, zu beseitigen. Man unterscheidet prinzipiell drei geometrische Transformationen, die im Folgenden n¨aher erl¨autert werden: Translation: Verschiebung von Bildern Rotation: Drehung von Bildern und Skalierung: Vergroßerung ¨ bzw. Verkleinerung von Bildern.
4.3 Geometrische Entzerrung
51
Translatorische Transformationen und auch Drehungen um n · 90o mit n = 0, 1, 2, ... sind relativ einfache Operationen. Die Topologie der Bildpunkte unter Berucksichtigung ¨ des Rechteckrasters wird nicht beeinflusst. Sollen Drehungen um beliebige Winkel durchgefuhrt ¨ werden, sowie beliebige Skalierungen, so werden Interpolationsmechanismen benotigt. ¨ Diese Interpolationsverfahren haben die Aufgabe, die Topologie der Bildpunkte und ihrer Grauwerte moglichst ¨ gut zu erhalten. Beispielsweise kann auf den n¨achsten Wert bzgl. einer Nachbarschaft gerundet werden. Oder der zu berechnende Wert kann durch eine bilineare Interpolation bestimmt werden. Die bilineare Interpolation bestimmt den neuen Grauwert A( x neu , y neu ) durch eine gewichtete Summe des gerade betrachteten Grauwertes E( x, y) mit drei seiner Nachbarn: A( x neu , y neu ) = w1 E( x, y) + w 2 E( x, y + 1) + w 3 E( x + 1, y) + w 4 E( x + 1, y + 1) (4.13) Durch die Wahl der w i kann die Position des neuen Bildpunktes in Hinblick auf seine Nachbarn berucksichtigt ¨ werden. Da hierbei u.U. neue Grauwerte entstehen, l¨asst sich die bilineare Interpolation nicht auf logische (bin¨are) Bilder anwenden. Werden die w i so gew¨ahlt, dass ∑ 4i=1 wi = 1 ist, dann wird eine gewichtete und gemittelte Summe berechnet. Im zweidimensionalen Raum existieren prinzipiell die drei oben genannten Transformationen – Translation (auch: Versetzung des Ursprungs), Rotation und Skalierung. Weitere Ver¨anderungen konnen ¨ durch Kombination dieser drei Transformationen erzielt werden. Bei diesen Transformationen handelt es sich um Bildpunkttransformationen, sodass jeder Bildpunkt einzeln transformiert werden muss. Werden Matrizen fur ¨ diese Transformationen genutzt, so lassen sich die Transfor¨ diese zweimationen effektiv umsetzen. In der Regel werden 3 × 3-Matrizen fur dimensionalen Transformationen verwendet. Wir benotigen ¨ fur ¨ eine Koordinatentransformation im allgemeinen Fall eine Matrix M und einen Spaltenvektor S mit: s1 M11 M12 M13 und S = s2 M = M21 M22 M23 s3 M31 M32 M33 Fur ¨ eine Koordinatentransformation gilt: Ein Bildpunkt E( x, y) habe ursprung¨ lich die Koordinaten x, y bezogen auf ein bestimmtes Koordinatensystem. Nach der Transformation habe der Bildpunkt E neu die Koordinaten xneu , y neu bezogen auf ein ver¨andertes Koordinatensystem. Das ver¨anderte Koordinatensystem ergibt sich aus der Anwendung der affinen Transformationen. Die Koordinaten des ursprunglichen ¨ sowie des berechneten Bildpunktes lassen sich in homogener Koordinaten-Schreibweise als Spaltenvektoren bestimmen.
52
4 Vorverarbeitung
x E= y 1
xneu = yneu 1
und
Eneu
Eine affine Transformation berechnet die neuen Koordinaten als eine lineare Kombination der ursprunglichen ¨ Werte unter Berucksichtigung ¨ der Koeffizienten der entsprechenden Transformationsmatrix. Allgemein entstehen dadurch die folgenden linearen Gleichungen xneu yneu 1
= = =
M11 · x + M12 · y + M13 M21 · x + M22 · y + M23 M31 · x + M32 · y + M33
(4.14)
Die letzte Zeile ist nur dann erfullt, ¨ wenn M31 = 0, M32 = 0 und M33 = 1. Ein neues transformiertes Koordinatenpaar (in Spaltenform) wird demnach durch die Multiplikation einer Matrix M mit einem Spaltenvektor S berechnet. Also kann die Koordinatentransformation Eneu wie folgt definiert werden: Eneu = M · S
4.3.1 Translation Eine Translation T kann als Verschiebung des Ursprungs verstanden werden. Die Achsenrichtung und der Achsenverlauf werden nicht beeinflusst. Der Verlauf bedeutet hier, dass die Skalierung der Achsen unver¨andert bleibt. Der Ursprung hat neu im neuen Koordinatensystem die Koordinaten (−uneu x , −u y ). Neue Punkte werden wie folgt berechnet: xneu yneu
= 1 · x + 0 · y − u neu x = 0 · x + 1 · y − u neu y
Die Transformationsmatrix lautet:
1 T= 0 0
0 1 0
−u neu x −u neu y 1
4.3.2 Rotation Bei einer Rotation R werden weder der Ursprung noch die Skalierung der Achsen ver¨andert. Lediglich die Richtung der Achsen wird ver¨andert. Eine allgemein gultige ¨ Konvention ist, dass die Richtung der Achsen durch eine Drehung um den Winkel Φ entgegen dem Uhrzeigersinn durchgefuhrt ¨ wird. Die neuen Koordina-
4.3 Geometrische Entzerrung
53
ten berechnet man durch: xneu yneu
= cos Φ · x + sin Φ · y + 0 = − sin Φ · x + cos Φ · y + 0
Die Transformationsmatrix lautet:
cos Φ R = − sin Φ 0
sin Φ 0 cos Φ 0 0 1
4.3.3 Skalierung Fur ¨ die Skalierung S gilt: Der Ursprung und die Achsenrichtung werden durch die Transformation nicht ver¨andert. Lediglich die Skalierung der Achsen ver¨andert sich. Die Skalierungsfaktoren scal x und scal y bestimmen die Skalierung. Sind die Werte großer ¨ als Eins, so vergroßert ¨ sich das gesamte Koordinatensystem. Sind die Werte kleiner als Eins, so verkleinert sich das Koordinatensystem. Die neuen Koordinaten werden berechnet durch: xneu yneu
= scal x · x + 0 · y + 0 = 0 · x + scal y · y + 0
Die Transformationsmatrix lautet:
scal x R= 0 0
0 scal y 0
0 0 1
4.3.4 Kombinierte Transformationen Wie bereits oben erw¨ahnt wurde, konnen ¨ komplexere Ent- bzw. Verzerrungen durch Kombinationen der drei Grundtransformationen erreicht werden. Aufgrund der Matrizendarstellung besteht die einfache Moglichkeit, ¨ die Grundtransformationen zu kombinieren. Beispielsweise lassen sich eine Translation T mit einer Rotation R hintereinander ausfuhren. ¨ Durch eine Matrixmultiplikation erh¨alt man die entsprechende Kombinationsmatrix K, die beide Transformationen enth¨alt: KTR = T · R Soll die kombinierte Transformation wieder ruckg¨ ¨ angig gemacht werden, so ist darauf zu achten, dass die beiden inversen Grundtransformationen in umgekehrter Reihenfolge durchzufuhren ¨ sind: −1 = T −1 × R−1 KTR
54
4 Vorverarbeitung
Im Allgemeinen gilt, dass fur ¨ eine komplexe Transformation zun¨achst die entsprechende Kombinationsmatrix berechnet und mit dieser dann im Anschluss das Bild transformiert wird. Die neuen Koordinaten werden in der Regel durch lineare Polynome ermittelt ¨ den 2D-Fall) konnen ¨ (vgl. Gleichung 4.14). Die Parameter Mi j mit i, j = 1, 2, 3 (fur beispielsweise durch so genannte Systemkorrekturen bestimmt werden. Zum Beispiel werden die entsprechenden Daten fur ¨ eine Systemkorrektur von einem Fotokameraobjektivhersteller mitgeliefert, sodass die geometrischen Verzerrungen bei einem Weitwinkelobjektiv herausgerechnet“werden konnen. ¨ Sind die Daten ” fur ¨ eine Systemkorrektur nicht bekannt, so konnen ¨ die Werte der Parameter Mi j durch die so genannte Passpunktmethode (s.a. Haber¨acker (1985)) bestimmt werden, die in bestimmten Grenzen eine Systemkorrektur ermoglicht. ¨ Fur ¨ die Passpunktmethode wird folgende Annahme getroffen: S = ( A( x, y)) sei ein verzerrtes Bild. R = ( E(u, v)) sei ein Referenzbild. S soll an R durch geeignete geometrische Transformationen (auch Kombination) angeglichen werden. Des Weiteren ist uber ¨ den so genannten funktionalen Zusammenhang der Verzerrung nichts bekannt. Er kann allerdings durch ein Polynom n-ten Grades approximiert werden. S = ( A ( x , y )) sei das zu berechnende entzerrte Bild, das dann im Idealfall kongruent zu R ist. Zur Vereinfachung wird ein linearer Ansatz angenommen (vgl. Gleichung 4.14). ¨ werden Damit mussen ¨ sechs Parameter M11 bis M23 bestimmt werden. Dafur insgesamt drei Passpunkte benotigt. ¨ Passpunkte sind dabei sich entsprechende Punkte in R und in S, die eindeutig ermittelt werden konnen. ¨ Dies konnen ¨ zum Beispiel Eckpunkte von Objekten sein, die sowohl in R als auch in S eindeutig bestimmbar sind. Drei Passpunkte liefern drei Koordinatenpaare, die einander entsprechen. Fur ¨ den i-ten Passpunkt gilt:
(ui , v i )=( xi , yi ) Daraus resultieren die beiden folgenden Gleichungen: ui = M12 · xi + M12 · yi + M13 und
v i = M21 · xi + M22 · yi + M23
mit i = 1, 2, 3 oder in Matrixschreibweise x1 y1 u1 u2 = x 2 y 2 u3 x3 y3 entsprechend fur ¨ v
v1 x1 v2 = x2 v3 x3
y1 y2 y3
1 M11 1 · M12 1 M13 M21 1 1 · M22 1 M23
4.4 Zusammenfassung
55
Aus diesen Gleichungssystemen konnen ¨ nun die sechs Unbekannten (Polynom parameter) ermittelt werden. Im Anschluss daran kann dann S aufgebaut werden.
4.4 Zusammenfassung Wir haben in diesem Kapitel einige Methoden der Bildvorverarbeitung zum Zwecke der allgemeinen Bildverbesserung besprochen. Zun¨achst haben wir in Abschnitt 4.1 einfache Moglichkeiten ¨ zur Kontrastverbesserung durch so genannte Look-Up-Tables (LUT) kennen gelernt, die bereits w¨ahrend der Bildgebung zur Anwendung kommen konnen. ¨ Ist das Bild erst aufgenommen und liegt es digital vor, konnen ¨ wir mit Histogrammmanipulationen – wie zum Beispiel mit der Histogrammebnung – den allgemeinen Kontrast verbessern. Allerdings haben wir – wie am Beispiel mit dem Schachtbrettmuster – auch gesehen, dass eine Histogrammebnung nicht immer sinnvoll ist. Eine Histogrammebnung l¨asst sich mit besseren Resultaten auf eher naturliche ¨ Szenen anwenden. Der zweite große Punkt, den wir in Abschnitt 4.2 behandelt haben, ist die Rauschminderung oder Gl¨attung eines Eingabebildes. Rauschen kann vielf¨altige Ursachen haben und dadurch auch sehr unterschiedlicher Natur sein. Im Wesentlichen unterscheiden wir Gauß- von Salz-und-Pfeffer-Rauschen. Insbesondere Letzteres l¨asst sich ohne große Verf¨alschung des Eingabebildes durch einen Medianfilter vermindern. Die Mittelwertfilter hingegen gl¨atten nicht nur das Rauschen bezogen auf eine bestimmte Nachbarschaft, zus¨atzlich schw¨achen sie auch die Kantenuberg¨ ¨ ange (Diskontinuit¨aten) im Bild ab. Das ist im Allgemeinen eine eher unerwunschte ¨ Eigenschaft. Der letzte Punkt in Abschnitt 4.3 behandelt geometrische Entzerrungen durch die so genannten affinen Transformationen. Es ist beispielsweise in manchen Anwendungen sinnvoll, Objekte, die verglichen werden sollen, auf eine einheitliche Große ¨ zu skalieren, damit man eine großeninvariante ¨ Vergleichsmoglichekeit ¨ hat. Der gleiche Sachverhalt kommt auch bei verdrehten und/oder verschobenen Objekten zum Tragen. Die affinen Transformationen finden sehr h¨aufig Anwendung in der Computergrafik (s. Foley u. a. (1993)).
Kapitel 5
Kantendetektion In Rahmen der digitalen Bildverarbeitung werden verschiedene Arten von Kanten unterschieden. Man unterscheidet zum Beispiel Grauwertkanten, Texturkanten und Farbkanten. Farbkanten treten dort auf, wo zwei hinreichend unterschiedliche Farbbereiche aneinander grenzen. Texturkanten treten zwischen zwei unterschiedlich texturierten Bereichen auf. Im Folgenden sollen die Grauwertkanten betrachtet werden. Die in diesem Kapitel besprochenen Ans¨atze zur Kantendetek¨ tion konnen ¨ mit entsprechenden Anderungen auch zur Farbkantendetektion verwendet werden. Texturkanten hingegen konnen ¨ kaum mit den in diesem Kapitel vorgestellten Ans¨atzen detektiert werden. Nicht zuletzt deswegen ist der Texturanalyse ein eigenes Kapitel (s. Kapitel 6) gewidmet. Eine Grauwertkante beschreibt im Allgemeinen die Grauwert¨anderung an der Grenze nebeneinander liegender oder auch benachbarter Bereiche. Man spricht auch von einer Diskontinuit¨at im Bildsignal. Das Bildsignal l¨asst sich vereinfacht ¨ als Zeilen- oder Spaltenprofil annehmen. Ein Kante l¨asst sich dann an einem Ubergang von einem niedrigen Intensit¨atswert zu einem hoheren ¨ (oder umgekehrt) ¨ bestimmter Große ¨ festmachen. In Abbildung 5.1 ist solch ein Ubergang fur ¨ ein Zeilenprofil idealisiert dargestellt.
1 0 0 1 0 ¨ Abbildung 5.1: Zeilenprofil einer idealisierten Kante. Der Ubergang geht vom Intensit¨atswert 10 auf 100
Die Detektion von Kantenpunkten allein fuhrt ¨ nicht zu dem in der Regel gewunschten ¨ Ergebnis. Beispielsweise soll der Umriss (auch: Kontur) eines Objektes ermittelt werden. Hierbei mussen ¨ nach einer Kantenpunktdetektion die zusammengehorigen ¨ Kantenpunkte entsprechend gruppiert werden. Das ist Teil der
58
5 Kantendetektion
kantenbasierten Segmentierung (vgl. Abschnitt 7.1). Dabei ist der erste Schritt die Detektion von Kantenpunkten (auch: Konturpunktauffindung) im Bild, w¨ahrend der zweite Schritt sich mit der so genannten Konturpunktverkettung befasst. Gegenstand dieses Kapitels ist die Kantenpunktdetektion. Kantenpunkte lassen sich mit Hilfe von diskreten Ableitungen ermitteln. Diskrete Ableitungen werden in den Abschnitten 5.1 und 5.3 behandelt. Zus¨atzlich werden ublich ¨ verwendete Kantenoperatoren in diesem Kapitel vorgestellt.
5.1 Diskrete Ableitung 1. Ordnung Zun¨achst soll die (diskrete) Ableitung eines Bildes diskutiert werden. Weiterhin betrachten wir nur zweidimensionale Bilder. Die stetigen Funktionen als Ableitungen mit zwei Ver¨anderlichen x und y ergeben sich zu:
E x ( x, y) =
∂E( x, y) ∂E( x, y) bzw. E y ( x, y) = ∂x ∂y
(5.1)
Die diskreten Ableitungen1 erster Ordnung in x- und y-Richtung werden durch folgende Differenzengleichungen beschrieben: ∂E( x, y) E( x, y) − E( x − ∆x, y) ≈ ∆ x E( x, y) = ∂x ∆x
(5.2)
∂E( x, y) E( x, y) − E( x, y − ∆y) ≈ ∆ y E( x, y) = ∂y ∆y
(5.3)
Somit berechnen ∆ x E( x, y) und ∆ y E( x, y) die diskreten Ableitungen erster Ordnung in x- und y-Richtung. Setzt man ∆ x = ∆ y = 1, so ergeben sich als diskrete Ableitung in x- und y-Richtung die Differenzen zwischen den direkt benachbarten Bildpunkten zu: ∆ x E( x, y) = E( x, y) − E( x − 1, y) bzw. ∆ y E( x, y) = E( x, y) − E( x, y − 1) (5.4) Als Faltungsmatrizen lassen sich die in Gleichung 5.4 bestimmten ∆x E( x, y) und ∆ y E( x, y) wie folgt schreiben2 : −1 x-Richtung: Dx = −1 1 bzw. y-Richtung: D y = 1 In beliebiger Richtung Θ l¨asst sich eine diskrete Ableitung wie folgt bestimmen: 1
Ableitung wird auch als Gradient gezeichnet. Eigentlich berechnet die erste Ableitung die Grauwertgradienten. 2 Der Buchstabe ’D’ steht fur ¨ ’derivation’ bzw. alternativ fur ¨ ’difference’.
5.1 Diskrete Ableitung 1. Ordnung
59
∆Θ E( x, y) = ∆ x E( x, y) cos Θ + ∆ y E( x, y) sin Θ
(a)
(b)
(c)
(d)
Abbildung 5.2: (a) Original, (b) Ableitung in x-Richtung, (c) Ableitung in y-Richtung und (d) Ableitung sowohl in x- als auch in y-Richtung
Es werden die horizontale und vertikale Ableitung berechnet. Das bildhafte Ergebnis ist eine Art plastisches Bild (vgl. Abbildung 5.2 – insbesondere (d)). Man spricht auch von einem Gradientenbild. Die Erzeugung erfordert fur ¨ jeden Bildpunkt eine Differenzierung in zwei orthogonalen Richtungen. In der Regel werden hierfur ¨ die horizontale und die vertikale Richtung betrachtet. Fur ¨ die Berechnung des Gradientenbetrages und der Gradientenrichtung (s.u.) konnen ¨ auch die diagonalen Richtungen betrachtet werden. Wichtig ist, dass die betrachteten Richtungen immer orthogonal zueinander sind. Jedem Bildpunkt werden zwei Gradientenwerte (Vektorgradienten) zugeordnet, mit denen nach der Gleichung 5.5 der Betrag des Gradienten an dem Punkt ( x, y) und nach der Gleichung 5.6 die Richtung des Gradienten an dem Punkt ( x, y) bestimmt wird.
60
5 Kantendetektion
Der Gradientenbetrag berechnet sich durch: 2 ∇( x, y) = ( x E( x, y))2 + y E( x, y)
(5.5)
Die Gradientenrichtung berechnet sich durch: y E( x, y) Φ( x, y) = arctan x E( x, y)
(5.6)
Es lassen sich beispielsweise auch noch der Betrag und das Maximum der Richtungsdifferenz berechnen (vgl. Abmayr (1994)): Der Betrag der Richtungsdifferenz berechnet sich durch:
|∇|( x, y) = | x E( x, y)| + | y E( x, y)|
(5.7)
Das Maximum der Richtungsdifferenz berechnet sich durch:
∇max ( x, y) = max(| x E( x, y)|, | y E( x, y)|)
(5.8)
Vergegenw¨artigen wir uns noch einmal die idealisierte Kante aus Abbildung 5.1. Was passiert eigentlich bei einer ersten Ableitung genau an der Stelle, an der die Diskontinuit¨at auftritt? Bleiben wir fur ¨ das Beispiel im 1D-Fall. Nehmen wir die 3 Intensit¨atswerte, wie in der Abbildung angegeben. Unser 1D-Kantendetektor soll wie folgt gewichtet sein: 1 0 −1 . Faltet man das 1D-Signal mit dem Operator, dann ergibt sich fur ¨ die horizontalen Bereiche im Signal jeweils eine 0 und an der Diskontinuit¨at (da Betrag!) eine 90 und dann nochmals eine 90. Die erste Ableitung wird also an der Stelle ein (verbreitertes) Maximum aufweisen. In Abbildung 5.3 ist der Sachverhalt schematisch dargestellt.
9 0 0 Abbildung 5.3: Zeilenprofil einer ersten Ableitung einer idealisierten Kante
5.2 Kantenoperatoren Die in diesem Abschnitt behandelten Kantenoperatoren berechnen bei der Faltung des Bildes die erste diskrete Ableitung. Durch Vorgabe der Große ¨ und der 3
Wir verwenden hier einen 1D-Kantenoperater mit drei Stellen und nicht die eigentliche Differenz D x (s.o.). Das hat den Vorteil, dass das neu berechnete Pixel (also der Bezugspunkt) in der Mitte liegt und der Operator somit symmetrisch ist.
5.2 Kantenoperatoren
61
Gewichtung der lokalen Nachbarschaft konnen ¨ verschiedenste Kantenoperatoren (auch Vektorgradienten) definiert werden. Die Gradienten in der Gleichung 5.4 haben den entscheidenden Nachteil, dass sie keinen symmetrischen Bezugspunkt haben, wie auch der folgende sog. Roberts-Cross-Operator (Gleichung 5.9). Die weiteren in diesem Kapitel aufgefuhrten ¨ Kantenoperatoren weisen allerdings einen symmetrischen Bezugspunkt auf (Gleichung 5.11 bis Gleichung 5.14) und sollten in der Regel eher zur Anwendung kommen. Auch der in Gleichung 5.17 vorgestellte Laplace-Operator weist einen symmetrischen Bezugspunkt auf. Roberts-Cross-Operator Der Roberts-Cross-Operator betrachtet bei der Ermittlung der Gradienten eine 2 × 2-Nachbarschaft. Es werden die Differenzen in den beiden Diagonalrichtungen 45 o und 135 o gebildet. Die Berechnung erfolgt nach folgender Gleichung: A( x, y) = max (| E( x, y) − E( x + 1, y + 1), E( x + 1, y) − E( x, y + 1) |) Die zugehorige ¨ Faltungsmatrix ist: 1 0 RC1 = 0 −1
bzw. RC2 =
0 −1
1 0
(5.9)
(5.10)
Der Roberts-Cross-Operator weist neben dem Nachteil, dass er keinen symmetrischen Bezugspunkt hat, einen weiteren Nachteil auf: aufgrund der geringen Große ¨ der betrachteten Nachbarschaft reagiert er auch empfindlich auf Rauschen. Deswegen werden im Allgemeinen großere ¨ Nachbarschaften (mindestens 3 × 3) betrachtet. Die im Folgenden vorgestellten Operatoren berechnen mindestens 3 × 3 Vektorgradienten und bewirken gleichzeitig eine Gl¨attung des Bildes. Prewitt-Operator Der Prewitt-Operator wird durch folgende Faltungsmatrizen definiert. Er bewirkt im Gegensatz zum Roberts-Cross-Operator eine (wenn auch leichte) Gl¨attung des Bildes: 1 0 −1 1 1 1 0 0 Px = 1 0 −1 und Py = 0 (5.11) −1 −1 −1 1 0 −1 Sobel-Operator Der Sobel-Operator wird durch folgende Faltungsmatrizen definiert. Er bewirkt im Gegensatz zum Prewitt-Operator eine etwas st¨arkere Gl¨attung des Bildes, da die
62
5 Kantendetektion
jeweils mittleren Matrixelemente doppelt gewichtet sind:4
1 Sx = 2 1
0 0 0
−1 −2 −1
1 und S y = 0 −1
2 0 −2
1 0 −1
(5.12)
Sowohl der Prewitt- als auch der Sobel-Operator reagieren am st¨arksten auf horizontale bzw. vertikale Grauwertkanten, weswegen man sie als richtungsabh¨angig bezeichnet. Kompassgradienten-Operatoren Die im Folgenden vorgestellten so genannten Kompassgradienten berechnen Richtungsdifferenzen in acht Richtungen von 0o bis 315 o in 45 o -Schritten. In der Regel wird die maximale Teilantwort der einzelnen Masken (s. Gleichung 5.13 bzw. 5.14) als Gesamtoperator-Antwort herangezogen. Das hat den Vorteil, dass Richtungsspezifika der Strukturen im Bild besonders betrachtet werden konnen. ¨ In Abmayr (1994) wird folgender Kompassgradienten-Operator definiert: −1 1 1 1 1 1 kom 1 = −1 −2 1 kom 0 = −1 −2 1 −1 1 1 −1 −1 1
1 kom 2 = 1 −1
1 −2 −1
1 1 −1
1 kom 3 = 1 1
1 −2 −1
1 −1 −1 (5.13)
1 kom 4 = 1 1
1 −2 1
−1 −1 −1
−1 −1 −1 kom 6 = 1 −2 1 1 1 1
1 kom 5 = 1 1
−1 −1 −2 −1 1 1
−1 −1 1 kom 7 = −1 −2 1 1 1 1
Ein weiterer Kompassgradienten-Operator ist der so genannte Kirsch-Operator nach Kirsch (1971): 4
Besonders deutlich wird die Gl¨attungswirkung, wenn man sich die Powerspektren des Prewitt- und des Sobel-Operators ansieht. Der Prewitt-Operator zeigt zum Rand hin gewisse Welligkeiten. Der Sobel-Operator zeigt hingegen zum Rand hin einen glatten Verlauf.
5.2 Kantenoperatoren
63
−3 −3 5 K0 = −3 0 5 −3 −3 5
5 K2 = −3 −3
5 0 −3
5 −3 −3
−3 5 5 5 K1 = −3 0 −3 −3 −3
5 K3 = 5 −3
5 0 −3
−3 −3 −3 (5.14)
5 K4 = 5 5
−3 −3 0 −3 −3 −3
−3 −3 −3 K6 = −3 0 −3 5 5 5
−3 −3 −3 0 −3 K5 = 5 5 5 −3
−3 −3 −3 5 K7 = −3 0 −3 5 5
Einseitiger Kantenoperator Eine etwas andere Art der Kantendetektion realisiert der so genannte einseitige Kantenoperator (s. Klette und Zamperoni (1995) auch: Simple Edge Operator), der die Differenz zwischen dem aktuellen Grauwert und dem minimalen Grauwert innerhalb einer lokalen 3 × 3 Nachbarschaft berechnet. Die aufgrund der Berechnung zustande kommende Kantenbreite betr¨agt genau einen Bildpunkt. Dieser Operator ist nicht-linear aufgrund seiner Ordnungsabh¨angigkeit. Das Bild wird auch gegl¨attet, allerdings nur dann, wenn der Grauwert des Rauschpunktes großer ¨ ist, und zwar relativ zu den Grauwerten innerhalb der lokalen Nachbarschaft. Ist der Grauwert des Rauschpunktes gerade das Minimum, so erfolgt keine Gl¨attung. Eine Umsetzung dieses Operators l¨asst sich im Anhang B.5 finden. Zun¨achst wird also ein Zwischenergebnis, das Grauwertminimum innerhalb der lokalen Nachbarschaft W (i, j), bestimmt: Atmp (k, l ) = min E(q) q ∈W ( i, j)
Das Endergebnis des Operators ergibt sich zu: A( x, y) = E( x, y) − A tmp (k, l ) Der Operator erzeugt gute Kantenbilder, wenn das Bild im Wesentlichen aus relativ konstanten Grauwertfl¨achen besteht. Grauwertrampen werden als solche meistens nicht erkannt. Betrachtet man helle Objekte auf dunklem Hintergrund, so verlaufen die Kanten am inneren Objektrand. Das resultierende Kantenbild ist in Grauwerte codiert, wobei die Grauwerte die Kantensteilheit darstellen.
64
5 Kantendetektion
5.3 Diskrete Ableitung 2. Ordnung Diskrete Ableitungen zweiter Ordnung werden durch eine zweimalige Ableitung erster Ordnung realisiert. Es wird also die Differenz zu zwei benachbarten Bildpunkten berechnet. Fur ¨ die x-Richtung ergibt sich somit:
∆ x E( x, y) = = =
∆ x E( x + 1, y) − ∆ x E( x, y) ( E( x + 1, y) − E( x, y)) − ( E( x, y) − E( x − 1, y)) E( x + 1, y) + E( x − 1, y) − 2E( x, y)
(5.15)
Entsprechend fur ¨ die y-Richtung:
∆ y E( x, y)
= E( x, y + 1) + E( x, y − 1) − 2E( x, y)
(5.16)
Die zugehorigen ¨ Faltungsmatrizen sehen wie folgt aus: x-Richtung: Dx = 1
−2
1
1 bzw. y-Richtung: D y = −2 1
Vergegenw¨artigen wir uns noch einmal die idealisierte Kante aus Abbildung 5.1. Was passiert eigentlich bei einer zweiten Ableitung genau an der Stelle, an der die Diskontinuit¨at auftritt? Bleiben wir fur ¨ das Beispiel wieder im 1D-Fall. Nehmen wir die Intensit¨atswerte, wie in der Abbildung 5.1 angegeben. Unser 1DKantendetektor soll wie folgt gewichtet sein: 1 −2 1 . Faltet man das 1DSignal mit dem Operator, dann ergibt sich fur ¨ die horizontalen Bereiche im Signal jeweils eine 0 und an der Diskontinuit¨at ein so genannter Nulldurchgang (zero crossing). Also zun¨achst eine 90 und anschließend eine -90. Die zweite Ableitung wird also an der Stelle einen Nulldurchgang aufweisen. In Abbildung 5.4 ist der Sachverhalt schematisch dargestellt.
9 0 0 -9 0 Abbildung 5.4: Zeilenprofil einer zweiten Ableitung einer idealisierten Kante
Laplace-Operator Rosenfeld und Kak (1982) bezeichnen die Summe der beiden partiellen Ableitungen 2. Ordnung als Laplace-Operator, der mit ∇ 2 bezeichnet wird:
∇2 E( x, y) ≈
∂2 E( x, y) ∂2 E( x, y) + ∂x2 ∂y2
(5.17)
5.4 Zusammenfassung
65
∇2 E( x, y) ist fur ¨ den diskreten Fall der Laplace-Operator. Er ist im Gegensatz zu dem Sobel- oder Prewitt-Operator (Seite 61) rotationsinvariant. Die 3 × 3Faltungsmatrix kann bzgl. einer 4er-Nachbarschaft oder einer 8er-Nachbarschaft wie folgt definiert werden: −1 −1 −1 0 −1 0 ∇24er = −1 4 −1 ∇28er = −1 8 −1 −1 −1 −1 0 −1 0 Bei einem kleinen Abstecher in den Fourierraum (s. Kapitel 11) l¨asst sich Folgendes beobachten: Betrachtet man hier das Powerspektrum der beiden Faltungsmatrizen (s. Abmayr (1994)), so wird deutlich, dass der Laplace-Operator ein so genannter Hochpass ist, was bedeutet, dass er hohe Frequenzen durchl¨asst und niedrige Frequenzen sperrt.
5.4 Zusammenfassung ¨ Wir wollen abschließend einige Uberlegungen zu den diskreten Ableitungen anstellen. Was passiert mit einem einzelnen Punkt, mit einem Endpunkt, mit einer Linie und mit einer Kante, wenn man des Bild einmal (gem¨aß Gleichung 5.4) und zweimal (gem¨aß der Faltungsmatrix ∇ 24er ) ableitet (Ergebnis jeweils der Betrag)? Der Einzelpunkt wird bei bei der Gradientenfilterung verschmiert und beim Laplace-Operator verst¨arkt. Der Endpunkt einer Linie wird bei bei der Gradientenfilterung verbreitert und beim Laplace-Operator verst¨arkt. Bei der Linie verh¨alt es sich analog: Der Gradientenfilter verbreitert sie und der Laplace-Operator verst¨arkt sie. Bei einer Kante verh¨alt es sich anders: Der Gradientenfilter erzeugt eine Linie und der Laplace-Operator verbreitert sie. Allgemein l¨asst sich sagen, dass die erste Ableitung (Gradientenoperatoren) ein Maximum an der Stelle der Diskontinuit¨at aufweist. Die Zweite Ableitung hingegen weist an der Stelle der Diskontinuit¨at einen Nulldurchgang auf. An dieser Stelle sei auf die Arbeiten von Marr (1982); Canny (1986); Korn (1988) bzw. Witkin (1983) hingewiesen. Anwendung findet die Detektion von Kanten in sehr vielen Bereichen. ¨ Die korrespondierenden Ubungsaufgaben lassen sich im Anhang C.4 und auch teilweise im Anhang C.8 finden.
Kapitel 6
Texturanalyseverfahren 1 uber ¨ Dieses Kapitel gibt einen Uberblick ¨ mathematische Modelle zur Texturanalyse. Ein Teil dieser Texturanalyseverfahren l¨asst sich auf bestimmte Texturen (auch: Texturklassen) fur ¨ eine Klassifikation besonders gut anwenden. Werden die gleichen Verfahren auf andere Texturen angewendet, so f¨allt die Klassifikationsrate ab.2 In der Abbildung 6.5 am Ende dieses Kapitels ist in tabellarischer Form ein Vergleich bzgl. der Klassifikationsgute ¨ von verschiedenen Texturanalyseverfahren dargestellt. Daraus ergibt sich, dass die statistischen Verfahren eine etwas ausfuhrlichere ¨ Betrachtung verdienen als die strukturellen Verfahren, da Erstere fur ¨ den Einsatz in der Praxis im Allgemeinen mehr Relevanz haben. Daneben gilt, dass eine andere Menge der Texturanalyseverfahren besser geeignet ist, Bilder hinsichtlich verschiedener Texturmerkmale zu segmentieren, das jeweilige Bild in einheitliche Texturbereiche zu partitionieren. Diese Verfahren mussen ¨ aber nicht notwendigerweise a¨ hnlich gute Resultate bei der Texturklassifikation, also der Einteilung in Texturklassen, erzielen. Wir wollen alle Verfahren als Texturanalyseverfahren bezeichnen, egal welchen Zweck – Segmentierung, Klassifikation oder Synthese – der Einsatz der Verfahren verfolgt.
Grob gesehen wird in statistische/stochastische3 (vgl. Abschnitt 6.2) und strukturelle Verfahren (vgl. Abschnitt 6.3) zur Texturanalyse unterschieden. Es kann auch Kombinationen von statistischen und strukturellen Verfahren geben. Die statistischen Verfahren lassen sich auf ein breiteres Feld von Texturen anwenden, hingegen werden die strukturellen Verfahren vorwiegend auf so genannte deterministische Texturen angewendet. Deterministische Texturen kommen eher nicht in der Natur vor bzw. sind von Menschenhand erzeugt. Ein Beispiel fur ¨ eine eher deterministische Textur ist in Abbildung 6.1 (a) zu sehen. ¨ Der Uberblick erhebt nicht den Anspruch, vollst¨andig zu sein. Detailiertere Informationen lassen sich in Conners und Harlow (1980a) oder in Rao (1990) finden. 3 Im Weiteren werden wir diese Verfahren zur Vereinfachung als statistische Verfahren bezeichnen. 1 2
68
6 Texturanalyseverfahren
Innerhalb der statistischen Verfahren konnen ¨ weiter rein stochastische, punktbasierte Statistiken n-ter Ordnung, globale Statistiken und in Filter-basierte (lokale) Statistiken unterschieden werden. Eine Auswahl der genannten Verfahren wird in den Abschnitten 6.2.1 bis 6.2.3 behandelt. Ein Beispiel fur ¨ eine eher stochastische Textur ist in Abbildung 6.1 (b) zu sehen. Strukturelle Verfahren lassen sich dadurch charakterisieren, dass sie durch so genannte Texel (texture elements) und durch Aufbauregeln beschrieben werden. Texel sind primitive Texturelemente mit einer Menge von Attributen. Aufbauregeln beschreiben, wie der Name schon sagt, den geometrischen Aufbau der Textur. Ein Beispiel soll dies verdeutlichen: Stellt man sich beispielsweise ein kariertes Papier vor, so konnte ¨ das Texel ein Kreuz sein, und die zugehorige ¨ Aufbauregel wurde ¨ sinngem¨aß etwa wie folgt lauten: Konkateniere das Texel sowohl in horizontaler als auch in vertikaler Richtung. Eine Beschreibung der Textur ist dann vollst¨andig, wenn die Texel und die Beziehungen zueinander vollst¨andig erfasst sind. Die strukturellen Verfahren lassen sich besonders gut zur Analyse so genannter deterministischer Texturen nutzen. Deterministische Texturen zeichnen sich durch strukturierende Elemente (Texel) und Regeln aus, die die geometrischen Beziehungen der strukturierenden Elemente zueinander beschreiben. Dadurch entsteht allerdings auch ein wesentliches Problem: Zur Bestimmung eines Texels muss die Aufbauregel bekannt sein, und umgekehrt muss zur Bestimmung einer Aufbauregel das Texel bekannt sein. Genau in diese beiden Problemschritte werden strukturelle Texturanalyseverfahren eingeteilt: Bestimmung der Texel und Bestimmung von Aufbauregeln. Strukturelle Texturanalyseverfahren werden unterschieden in Verfahren, die sich mit der Extraktion von Texeln (Abschnitt 6.3.1), und solchen, die sich mit der Bestimmung von Texturen aus Texeln besch¨aftigen, sowie in deterministische Modelle zur Texturanalyse, die sowohl die Texelextraktion als auch die Bestimmung von Aufbauregeln behandeln (Abschnitt 6.3.2). Bevor wir uns mit den einzelnen Verfahren auseinander setzen wollen, soll der Begriff Textur“ n¨aher betrachtet werden. Einige der weiter unten vorgestellten ” Analyseverfahren basieren auf Erkenntnissen von Experimenten zur Texturwahrnehmung. Insbesondere haben Julesz und seine Kollegen hierzu ausfuhrliche ¨ Forschungen durchgefuhrt ¨ (s. zum Beispiel Julesz u. a. (1973); Julesz (1981)).
6.1 Textur Der Begriff Textur ist nicht einheitlich definiert. Je nach Betrachtungsweise, jeweiliger Anwendung oder auch zugrunde liegendem mathematischen Modell variieren die Definitionen von Textur. Man wird also feststellen, dass nur Weniges so uneindeutig ist wie der Begriff Textur. Allerdings ist Textur nahezu allgegenw¨artig. Liu meint in diesem Zusammenhang (vgl. Liu (1997)), dass die deut-
6.1 Textur
69
(a)
(b)
Abbildung 6.1: (a) Ein Beispiel fur ¨ eine deterministische Textur und (b) ein Beispiel fur ¨ eine stochastische Textur. Diese Abbildung befindet sich auch auf der beiliegenden CD-ROM im Verzeichnis Abbildungen
lichste Eigenschaft von Textur ihre Allgegenw¨artigkeit sei. Wobei die zweidimensional visuelle Textur und die dreidimensional haptische Textur durchaus noch intuitiv seien. Wird der Begriff Textur dagegen zur Charakterisierung von Audiosignalen verwendet, denn vermindert sich die Intuitivit¨at. Und weiter meint Liu, dass gerade die Allgegenw¨artigkeit der Textur eine formale Definition erschwert. Obwohl demzufolge eine Definition schwer zu erlangen ist, soll im Folgenden der Begriff Textur aus einem anderen Blickwinkel – aus Sicht der Wahrnehmung – betrachtet werden. So konnen ¨ wir uns doch quasi uber ¨ einen solchen Umweg dem Begriff der Textur n¨ahern und ein Verst¨andnis fur ¨ Textur entwickeln. Gibson betrachtet in Gibson (1982) Textur als Struktur einer Oberfl¨ache und schreibt in seinem vierten Gesetz das Folgende: Das vierte Gesetz handelt von dem, was ich Textur nenne und worun” ter man die Struktur einer Oberfl¨ache verstehen kann, im Unterschied zur Struktur der Substanz, die unter der Oberfl¨ache liegt. Wir sprechen hier von der relativ feinen Struktur der Umwelt im Großenbereich ¨ von Zentimetern und Millimetern. Die Oberfl¨achen von Felsgestein, von gepflugter ¨ Erde oder von Grasland sind Aggregate aus unterschiedlichen Einheiten – aus Kristallen, Erdklumpen beziehungsweise Grashalmen – allerdings sind diese Einheiten in großere ¨ Einheiten eingebettet.“ (Gibson (1982), S. 26) Also ist Textur die Struktur von Oberfl¨achen. Typischerweise weisen Objekte, die in der Natur vorkommen (B¨aume, Berge, Seen, usw.), und auch Objekte, die durch Menschenhand erzeugt sind (H¨auser, Straßen, usw.), solche Strukturen in der Oberfl¨ache auf. Diese Strukturen kann der Mensch sowohl visuell mit Hilfe der Augen als auch taktil mit Hilfe der Tastsensoren an den H¨anden wahrnehmen. Fur ¨ die digitale Bildverarbeitung sind lediglich die visuell wahrnehmbaren Struk-
70
6 Texturanalyseverfahren
turen relevant; deswegen werden taktil bzw. haptisch wahrnehmbare Strukturen nicht weiter betrachtet. Im Folgenden werden drei Definitionen vorgestellt, die den Begriff Textur, wie wir ihn verstehen wollen, verdeutlichen. Dabei werden die Definitionen immer etwas konkreter, bis sie quasi auf der Pixelebene ankommen“. ” Wechsler definiert in Wechsler (1980) Textur als einen Begriff, der die Oberfl¨achenbeschaffenheit von Ph¨anomenen und Objekten charakterisiert. Die Oberfl¨achenbeschaffenheit kann sowohl visuell als auch taktil wahrgenommen werden. Gool und Kollegen definieren in Gool u. a. (1985) Textur als eine aus mehr oder weniger geordneten Elementen4 (auch Mustern) zusammengesetzte Struktur. Keinem der Elemente kommt – fur ¨ sich allein genommen – eine wesentliche Bedeutung zu. Hier wird versucht, eine Grenze zwischen der Wahrnehmung einzelner Objekte und der Verschmelzung vieler a¨ hnlicher Objekte (Elemente) zu einer visuellen Einheit (Textur) zu ziehen. In B¨ahr und Vogtle ¨ (1991) versuchen B¨ahr und Vogtle ¨ die Textur als eine fl¨achenhafte Verteilung von Grauwerten mit zugehorigen ¨ Regelm¨aßigkeiten und gegenseitigen Abh¨angigkeiten innerhalb begrenzter Bildbereiche zu definieren. Mit der letzten Definition sind wir bei der Anordnung von Bildpunkten und ihren entsprechenden Grauwerten zueinander. Die Anordnungen von Grauwerten sind nichts anderes als sich mit gewissen Variationen wiederholende Muster von Grauwerten innerhalb einer lokalen Nachbarschaft. Kommen diese Muster wiederholt in einer großeren ¨ Region im Bild vor, so kann eine Textur wahrgenommen werden. Und gerade solche Verteilungen von Grauwerten lassen sich insbesondere durch statistische Verfahren analysieren und mathematisch beschreiben.
6.2 Statistische Verfahren Wie bereits erw¨ahnt, lassen sich die statistischen Verfahren in der Praxis im Allgemeinen auf ein breiteres Feld von Texturen anwenden als die strukturellen Verfahren. Innerhalb der statistischen Verfahren kann weiter zwischen rein stochastischen, punktbasierten Statistiken n-ter Ordnung, globalen Statistiken und Filter-basierten (lokalen) Statistiken unterschieden werden. Beispiele fur ¨ die jeweiligen Gruppen der statistischen Texturanalyseverfahren werden im Folgenden kurz vorgestellt.
4
Auch: Primitiva
6.2 Statistische Verfahren
71
6.2.1 Rein stochastische Verfahren Markov Random Fields Nimmt man Texturen als zuf¨allig und moglicherweise ¨ periodisch im 2D-Fall an, so konnen ¨ Markov Random Fields (MRF) zur Analyse und auch Beschreibung genutzt werden. Es wird von einem binomialen Modell ausgegangen (Cross und Jain, 1983). Dies bedeutet, dass jeder Bildpunkt einer Textur eine binomiale Verteilung hat mit Parametern, die durch die jeweiligen Nachbarpunkte bestimmt werden. Weiterhin konnen ¨ so viele Versuche durchgefuhrt ¨ werden, wie es Grauwerte im Bild gibt. Es wird also die Wahrscheinlichkeit, dass ein Bildpunkt einen bestimmten Grauwert hat, durch das Auftreten der Grauwerte seiner Nachbarpunkte bestimmt. Fur ¨ bestimmte Markov-Prozesse haben Cross und Jain Cross und Jain (1983) gezeigt, dass sich durch diese Texturmodelle Texturen mit gleichen Statistiken erster, zweiter, ..., n-ter Ordnung erzeugen lassen, deren Statistik (n+1)ter Ordnung hingegen unterschiedlich ist. Julesz und seine Kollegen (Julesz u. a., 1973) haben sich das in ihren Experimenten zunutze gemacht. Eine Anwendung der MRF zur Segmentierung von texturierten Farbbildern l¨asst sich in Panjwani und Healey (1995) finden. Autoregressives Modell Ebenfalls zur Modellierung von Texturen kann das so genannte autoregressive Modell genutzt werden, wie es in Khotanzad und Chen (1989) angewendet wird. Hierbei wird von einem Grauwert I ( x, y) am Punkt ( x, y) ausgegangen. Die Basisannahme ist, dass der Grauwert I durch eine Linearkombination der Grauwerte in einer Nachbarschaft und additivem weißen Rauschen5 w( x, y) generiert werden. Es gilt: I ( x, y) =
M
N
∑ ∑
i =− M j =− N
ai j I ( x − i, y − j) + w( x, y)
mit (i, j) = (0, 0) ((0, 0) Zentrumspixel). Die Texturen werden durch { a i, j |i = − M, . . . , M; j = − N, . . . , N; (i, j) = (0, 0)} charakterisiert. M × N bestimmt die Große ¨ der betrachteten Nachbarschaft, wobei der Berechnungsaufwand mit zunehmender Große ¨ der Nachbarschaft steigt. In Khotanzad und Chen (1989) werden 6 Koeffizienten fur ¨ jeden Bildpunkt gesch¨atzt, die somit die Textur fur ¨ eine Segmentierung charakterisieren.
6.2.2 Punktbasierte Statistik n. Ordnung Im Folgenden werden punktbasierte Statistken n. Ordnung betrachtet. Die Ordnung bezeichnet dabei die zur Statistik herangezogenen gleichzeitig betrachteten 5
Nach J¨ahne (1991) sind das die Impulse, die im Powerspektrum einen konstanten Wert liefern“, also ein” zelne Storpunkte ¨ im Bild, die beispielsweise durch eine Gl¨attung mit einem Medianfilter eliminiert werden konnen. ¨
72
6 Texturanalyseverfahren
Bildpunkte. So ist beispielsweise ein Histogramm (vgl. Abschnitt 4.1.2) eine Statistik erster Ordnung, da zur Berechnung der Statistik immer nur jeweils ein Bildpunkt betrachtet wird. Ein Beispiel fur ¨ eine Statistik zweiter Ordnung ist die so genannte Cooccurence-Matrix, bei der zur Bildung der jeweiligen Statistik Punktepaare betrachtet werden. Ein so genanntes Laufl¨angenverfahren stellt ein Beispiel fur ¨ eine Statistik hoherer ¨ Ordnung dar. Histogramm Ein Histogramm ist eine Statistik erster Ordnung. Es beschreibt die H¨aufigkeit, mit der ein Intensit¨atswert (Grauwert) im Bild vorkommt, genauer: mit der ein einzelner Bildpunkt mit entsprechendem Grauwert im Bild vorkommt. Sei h(i ) die H¨aufigkeit, mit der ein Intensit¨atswert i im Bild vorkommt. Darauf aufbauend konnen ¨ fur ¨ eine Textur die folgenden statistischen Merkmale berechnet werden: Mittelwert (Erstes Moment)
µ=
N −1
∑
ih(i )
(6.1)
(i − µ ) 2 h (i )
(6.2)
h(i ) log(h(i ))
(6.3)
i=0
Standardabweichung (Zweites Moment) N −1
∑
σ2 = Entropie
ε=−
i=0 N −1
∑
i=0
Schiefe6 (Drittes Moment) M3 =
N −1
∑
i=0
(i − µ ) 3 h (i )
(6.4)
Verfahren zur Texturanalyse mit Hilfe von Statistiken erster Ordnung werden in der Praxis kaum eingesetzt, da Texturen mit gleichen Statistiken n-ter Ordnung auch gleiche Statistiken 1-ter bis (n − 1)-ter Ordnung aufweisen (vgl. Julesz u. a. (1973) bzw. Julesz (1981)). Cooccurrence-Matrix Die Cooccurrence-Matrix wird auch als Gray-Tone Spatial-Dependence Matrices oder als Grauwertpaarh¨aufigkeitsmatrix (GPM) bezeichnet. Wir gehen von einem recht6 Die Schiefe gibt den Grad der Asymmetrie einer Verteilung an, die Abweichung der Histogrammverteilung von der Gaußschen Normalverteilung.
6.2 Statistische Verfahren
73
eckigen 2D-Bild aus. Das Bild habe in horizontaler Richtung die Dimension Nx und in vertikaler Richtung die Dimension Ny . Sei Ng die Anzahl der (quantisierten) Grauwerte; L x = {1, 2, . . . , N x } die horizontale r¨aumliche Ausdehnung und entsprechend L y = {1, 2, . . . , N y } die r¨aumliche vertikale Ausdehnung; G = {1, 2, . . . , N g } die Menge der Grauwerte. ein Bild I kann als Funktion angesehen werden, die einen Grauwert aus G einer Zelle aus L x × L y zuweist: I : L x × L y → G
9 0 °
1 3 5 ° 6
7
(6.5)
4 5 ° 8
5
0
1
4
3
2
0 °
Abbildung 6.2: 8er Nachbarschaft mit betrachteten Richtungen 0, 45, 90 und 135 Grad
In Haralick u. a. (1973) wird die Cooccurrence-Matrix wie folgt definiert: Es wird dabei von einer 8er Nachbarschaft um einen Bildpunkt (Zelle; resolution cell) ausgegangen. In Abbildung 6.2 ist eine solche Nachbarschaft dargestellt. Die n¨achsten Nachbarn des mittleren Bildpunktes in horizontaler Richtung (0 Grad) sind die Bildpunkte 1 und 5. Die n¨achsten Nachbarn in diagonaler Richtung (45 Grad) sind die Bildpunkte 4 und 8. In vertikaler Richtung (90 Grad) sind die Bildpunkte 3 und 7 die n¨achsten Nachbarn und in der zweiten diagonalen Richtung (135 Grad) sind die n¨achsten Nachbarbildpunkte 2 und 6. Weiterhin wird angenommen, dass die Texturkontextinformation, die ein Bild I aufweist, uber ¨ das ganze Bild verteilt ist und dass die Information in der Beziehung zwischen benachbarten Punkten durch die Grauwerte repr¨asentiert wird. Daraus kann abgeleitet werden, dass die Information ad¨aquat durch eine (oder mehrere) Matrizen spezifiziert werden kann, in welcher das relative Vorkommen Pi j eingetragen wird. Pi j bedeutet in diesem Zusammenhang: Es werden benachbarte Bildpunkte betrachtet, die mit Abstand d auseinander liegen, wobei der eine Bildpunkt den Grauwert i aufweist und der andere Bildpunkt den Grauwert j. Somit sind solche Matrizen Funktionen, die unter Berucksichtigung ¨ eines Winkels die r¨aumliche Beziehung zwischen benachbarten Bildpunkten und ihrem Abstand repr¨asentieren. Die Matrizen werden wie folgt definiert: P(i, j, d, 0 o) = #{((k, l ), (m, n)) ∈ ( L x × L y ) × ( L x × L y ) k − m = 0, |l − n| = d, I (k, l ) = i, I (m, n) = j}
74
6 Texturanalyseverfahren
= #{((k, l ), (m, n)) ∈ ( L x × L y ) × ( L x × L y )
P(i, j, d, 45 o)
(k − m = d, l − n = −d) oder (k − m = −d, l − n = d), I (k, l ) = i, I (m, n) = j} P(i, j, d, 90 o)
= #{((k, l ), (m, n)) ∈ ( L x × L y ) × ( L x × L y )
|k − m| = d, l − n = 0, I (k, l ) = i, I (m, n) = j} P(i, j, d, 135 o)
= #{((k, l ), (m, n)) ∈ ( L x × L y ) × ( L x × L y )
(k − m = d, l − n = d) oder (k − m = −d, l − n = −d), I (k, l ) = i, I (m, n) = j} # ist die Anzahl der Eintr¨age in der jeweiligen Menge. Die Matrizen P(i, j, d, θ ) und P( j, i, d, θ ) sind symmetrisch. Die Matrizen konnen ¨ bei Bedarf, jeweils in Abh¨angigkeit des Abstandes d und des Winkels θ, normalisiert werden. Unter der Annahme, dass d = 1 und θ = 0 o gilt, existieren 2( Nx − 1) benachbarte Bildpunkte in jeder Zeile, und es existieren N y Zeilen. Das ergibt als Normalisierungsfaktor: 2N y ( Nx − 1). Fur ¨ d = 1 und θ = 45 o ergibt das den Normalisierungsfaktor: 2( N y − 1)( Nx − 1). Aus Symmetriegrunden ¨ gelten diese Normalisierungfaktoren ¨ d = 1 und θ = 135 o . ebenso fur ¨ d = 1 und θ = 90 o bzw. fur Charakterisierend fur ¨ diesen Ansatz ist die Annahme, dass die komplette Texturinformation in den Cooccurrence-Matrizen steckt. Haralick et al. schlugen 14 statistische Merkmale vor, um die Texturinformation explizit zu machen. Beispiels¨ weise ist das statistische Merkmal f 1 (angular second moment (ASM)) ein Maß fur die Homogenit¨at der Textur im Bild. Ein sehr homogenes Bild bedeutet, dass nur sehr wenige dominante Grauwertuberg¨ ¨ ange im Bild festzustellen sind. Im Folgenden wird eine Auswahl der so genannten Haralick-Merkmale7 gegeben. Angular Second Moment f 1 = ∑ ∑ { p(i, j)}2 i
Contrast f2 = 7
Ng − 1
∑
n=0
N n2
g
Ng
∑ ∑ p(i, j)
i=1 j=1
(6.6)
j
mit |i − j| = n
(6.7)
Auch: Haralick features. Alle 14 statistischen Merkmale lassen sich in Haralick u. a. (1973) finden.
6.2 Statistische Verfahren
75
Correlation
∑ ∑(i j) p(i, j) − µ xµ y f3 =
i j
(6.8)
σ xσ y
mit µx , µ y als Mittelwerte und σ x , σ y als Standardabweichungen von den Randverteilungen p x , p y. Entropy f 9 = − ∑ ∑ p(i, j) log( p(i, j)) i
(6.9)
j
Fur ¨ alle Merkmale gilt: P ( i, j )
p(i, j) ist der (i, j) Eintrag in der normalisierten Cooccurrence-Matrix; R , R ist Normalisierungsfaktor. p x (i ) i-te Eintrag der Matrix, in der die Randverteilungen berechnet wurden durch Summieren der einzelnen Zeilen gem¨aß: p(i, j) = Ng
∑ j=1 P(i, j). Ng ist die Anzahl der unterschiedlichen Grauwerte im quantisierten Bild. ∑ enti
Ng
Ng
i=1
j=1
Ng Ng
spricht ∑ . Gleiches gilt fur ¨ j. p y ( j) = ∑ p(i, j). p x+ y (k) = ∑ ∑ p(i, j) mit i=1 j=1
Ng Ng
i + j = k und k = 2, 3, . . . , 2N g . p x− y (k) = ∑ ∑ p(i, j) mit |i − j| = k und k = 0, 1, . . . , N g − 1.
i=1 j=1
Grauwertlaufl¨angenmatrizen Soll eine Statistik hoherer ¨ Ordnung (n > 2) betrachtet werden, so werden haupts¨achlich die so genannten Grauwertlaufl¨angen berechnet. Die Grauwertlaufl¨ange definiert die Anzahl der Bildpunkte, die bzgl. einer Richtung θ k Nachbarbildpunkte haben, die wiederum den Grauwert g aufweisen, also: Pθ ( g, k) mit (g = 1, 2, . . . , m; k = 1, 2, . . . , n). Dabei ist m die maximale Anzahl der Grauwerte und n die maximale Anzahl der Bildpunkte. In Galloway (1975) wird die Berechnung der Gray Level Run Length Matrix (GLRLM) vorgeschlagen, um Texturen zu analysieren. Diese Methode berechnet die H¨aufigkeit, mit der Grauwertl¨aufe im Bild vorkommen, und wurde zur Bodenklassifikation eingesetzt. Eine Gray Level Run Length Matrix Mglrl (α ) ist eine Matrix der Dimension Ng × Nr , wobei Ng die Anzahl der Grauwerte im Bild angibt, Nr die Anzahl der unterschiedlichen Laufl¨angen und α die Richtung (α = 0 o , 45 o , 90 o , 135 o), in der der Lauf betrachtet wird. Der Matrixeintrag (i, j) der Mglrl (α ) gibt die H¨aufigkeit der Grauwertl¨aufe an, mit dem Grauwert i, der L¨ange j und der Richtung α . Es werden funf ¨ statistische Merkmale berechnet, die zum einen die L¨ange der L¨aufe betonen, zum anderen Ungleichm¨aßigkeiten in
76
6 Texturanalyseverfahren
den Grauwerten bzw. in den Laufl¨angen und zum Letzten die prozentuale Anzahl der L¨aufe berucksichtigen. ¨ Die funf ¨ Merkmale sind im Folgenden kurz genannt, wobei gilt, dass p(i, j) die Anzahl der Grauwertl¨aufe mit Grauwert i und L¨ange j, dass Ng die Anzahl der Grauwerte oder auch Grauwertintervalle, N r die Anzahl der unterschiedlichen L¨aufl¨angen und P die Anzahl der Punkte im Bild ist. Das Prinzip der auf der Basis der GLRLM berechneten Merkmale soll anhand der beiden folgenden Merkmale gezeigt werden: short run emphasis (Betonung kurzer L¨aufe): Ng Nr
∑ ∑
RF1 =
i=1 j=1
p ( i, j ) j2
Ng Nr
(6.10)
∑ ∑ p(i, j)
i=1 j=1
Jede Laufl¨angenanzahl wird durch das Quadrat der Laufl¨ange geteilt. Der Nenner ist die absolute Zahl der L¨aufe und stellt einen Normierungsfaktor dar. long run emphasis (Betonung langer L¨aufe): Ng Nr
∑ ∑ p(i, j) j 2
RF2 =
i=1 j=1
Ng Nr
(6.11)
∑ ∑ p(i, j)
i=1 j=1
Jede Laufl¨angenanzahl wird mit dem Quadrat der Laufl¨ange multipliziert. Der Nenner ist die absolute Zahl der L¨aufe und stellt einen Normierungsfaktor dar. Allerdings finden auf Grund der Ergebnisse von Julesz (s. Julesz u. a. (1973)) Grauwertstatistiken hoherer ¨ Ordnung kaum Anwendung. Auch die theoretischen Untersuchungen von Conners und Harlow (Conners und Harlow, 1980a) haben gezeigt, dass zur Texturklassifikation Statistiken hoherer ¨ Ordnung keine signifikanten Klassifikationsverbesserungen gegenuber ¨ Statistiken zweiter Ordnung erbringen. Zu einer a¨ hnlichen Aussage bzgl. Statistiken hoherer ¨ Ordnung kamen auch Weszka und Kollegen in ihren experimentellen Ergebnissen in Weszka u. a. (1976). Somit besteht kein Grund, Texturen mittels einer Statistik hoherer ¨ Ordnung zu beschreiben bzw. mittels eines Texturmodells, welchem eine Statistik hoherer ¨ Ordnung zugrunde liegt, Texturen zu analysieren.
6.2 Statistische Verfahren
77
6.2.3 Filterbasierte Verfahren Texturenergie Als ein Vertreter der filterbasierten Texturanalyseverfahren wollen wir die Filtermasken von Laws betrachten. Laws hat in Laws (1979) bzw. Laws (1980) Faltungsmasken in verschiedener Form vorgeschlagen, um Texturen zu analysieren. Als Ergebnis der Faltung eines Bildes mit diesen typischerweise 3 × 3- bzw. 5 × 5-Filtermasken konnen ¨ Aussagen uber ¨ die Texturenergie gemacht werden. Die Faltung ist sehr effektiv, da die Filtermasken separierbar sind. Es werden folgende 1D-Faltungsmasken definiert, wobei L fur ¨ level, E fur ¨ edges, S fur ¨ spot, W fur ¨ wave und R fur ¨ ripple steht. Die beiden Letztgenannten kommen erst bei den 5 × 5-Filtermasken vor (s.u.). Die 1D-Faltungsmasken sind wie folgt definiert: L3 = ( 1 1 1 ), E3 = ( −1 0 1 ) und S3 = ( −1 2 −1 ). Diese 1D-Faltungsmasken konnen ¨ beliebig miteinander kombiniert werden, sodass 2D-Faltungsmasken entstehen. In der folgenden Abbildung 6.3 sind beispielhaft drei von Laws vogeschlagene 3 × 3-Faltungsmasken dargestellt. Sie ergeben sich durch Kombinationen der obigen 1D-Faltungsmasken: 1 2 1 1 0 −1 E3E3 = 0 0 0 L3L3 = 2 4 2 1 2 1 − 1 0 1 1 −2 1 S3S3 = −2 4 −2 1 −2 1 Abbildung 6.3: Drei 3 × 3-Faltungsmasken zur Texturanalyse nach Laws
Fur ¨ 5 × 5-Faltungsmasken wurden die folgenden 5 Vektormasken definiert: L5 = ( 1 4 6 4 1 ), E5 = ( −1 −2 0 2 1 ), S5 = ( −1 0 2 0 −1 ), W5 = ( −1 2 0 −2 1 ) und R5 = ( 1 −4 6 −4 1 ). Auch diese Vektoren konnen ¨ beliebig kombiniert werden. Die vier wichtigsten Masken sind in Abbildung 6.4 dargestellt. Dabei dient die Faltungsmaske L5E5 zur Detektion einer vertikal orientierten Grauwertkante, E5S5 dient zur Detektion einer V-formi¨ gen Grauwertecke, L5S5 dient ebenfalls zur Detektion einer vertikal orientierten Grauwertkante und R5R5 dient zur Detektion eines Grauwertpunktes mit hoher Ortsfrequenz. Wird ein Bild beispielsweise mit den 3 × 3-Faltungsmasken gefaltet, so entstehen dabei fur ¨ einen Bildpunkt bzgl. seiner lokalen 3 × 3 Nachbarschaft neun Operatorantworten (Z1 ( x, y) bis Z 9 ( x, y)) und zwar fur ¨ jede Faltung eine. Diese einzelnen Werte werden quadriert, summiert und anschließend die Wurzel aus der Summe gezogen. Diese Wurzel steht dann fur ¨ den Energiewert E der Textur an dem jeweiligen Bildpunkt ( x, y):
78
6 Texturanalyseverfahren
L5E5 = L5S5 =
−1 −4 −6 −4 −1 −1 −4 −6 −4 −1
−2 −8 −12 −8 −2 0 2 0 8 0 12 0 8 0 2
0 0 0 0 0 0 0 0 0 0
2 1 8 4 12 6 8 4 2 1 −1 −4 −6 −4 −1
E3S5 = R5R5 =
−1 −2 0 2 1 1 −4 6 −4 1
0 2 0 0 4 0 0 0 0 0 −4 0 0 −2 0 −4 6 16 −24 −24 36 16 −24 −4 6
−1 −2 0 2 1 −4 16 −24 16 −4
1 −4 6 −4 1
Abbildung 6.4: Vier Faltungsmasken zur Texturanalyse nach Laws
E( x, y) =
( Z1 ( x, y)) 2 + ( Z2 ( x, y)) 2 + . . . + ( Z9 ( x, y)) 2,
(6.12)
Nach Laws ist die texturbasierte Bereichssegmentierung mittels der Faltungsmasken besser geeignet als z.B. die Statistik zweiter Ordnung. Experimentelle Ergebnisse von Pietik¨ainen u. a. (1982) best¨atigen dieses. Allerdings sollte hier bemerkt werden, dass die Analyseergebnisse sehr stark von der Form und Große ¨ der Faltungsmasken abh¨angen. Auch in Ballard und Brown (1982) (hier: Laws Basisfunktionen) sind die Faltungsmasken aus Abbildung 6.4 zur Texturanalyse angefuhrt. ¨ Allerdings ist die Faltungsmaske L5E5 um 90 Grad gedreht; sie dient somit zur Detektion einer horizontal orientierten Grauwertkante.
6.3 Strukturelle Verfahren Wie bereits erw¨ahnt, lassen sich strukturelle Verfahren dadurch charakterisieren, dass sie durch Texel (texture elements) und durch Aufbauregeln beschrieben werden. Weiterhin lassen sie sich besonders gut zur Analyse von so genannten deterministischen Texturen nutzen. Strukturelle Texturanalyseverfahren werden unterschieden in Verfahren, die sich mit der Extraktion von Texeln (Abschnitt 6.3.1), und solchen, die sich mit der Bestimmung von Texturen aus Texeln besch¨aftigen, sowie in deterministische Modelle zur Texturanalyse, die sowohl die Texelextraktion als auch die Bestimmung von Aufbauregeln behandeln (Abschnitt 6.3.2).
6.3.1 Texelextraktion Bei den Verfahren zur Extraktion von Texeln kann grob zwischen Kanten-basierten und Bereichs-basierten Ans¨atzen unterschieden werden. Die Hauptannahme eines Kanten-basierten Verfahrens ist, dass Texel sich durch signifikante Konturen oder Teilkonturen bestimmen lassen. Es werden zun¨achst alle Kantenpunkte aus dem Bild extrahiert, der n¨achste Schritt beinhaltet die Zusammenfassung (auch Grup-
6.3 Strukturelle Verfahren
79
pierung) von einzelnen Kantenpunkten zu geschlossenen Konturen bzw. Teilkonturen. Diese wiederum sind dann so genannte Texelkonturen. Ein Ansatz, der diese Idee nutzt, ist in Vilnrotter u. a. (1986) beschrieben. Er beruht auf der Bestimmung von Kantenwiederholungsfeldern. Diese Kantenwiederholungsfelder werden fur ¨ sechs Richtungen bestimmt. Kantenwiederholungsfelder sind im Wesentlichen Statistiken (erster Ordnung), die die H¨aufigkeit des Vorkommens von Kantenpaaren mit a¨ hnlicher Richtung, aber in unterschiedlichen Abst¨anden widerspiegeln. Wiederholen sich Strukturen im Bild, so weisen diese Felder lokale Maxima mit einem konstantem Abstand auf. Texel werden bestimmt, indem die Felder hinsichtlich der Maxima und ihrer Abst¨ande zueinander analysiert werden. Abschließend werden dann Konturpunktketten bestimmt, die charakteristisch fur ¨ die Texel sind. Bereichs-basierte Verfahren definieren primitive Texel als Areale mit homogenen Grauwerten. Mit Hilfe dieser Definition bestimmen Tomita und Kollegen (Tomita u. a., 1982) Texel. Sie detektieren die homogenen Bereiche durch ein Bereichswachstumsverfahren im Grauwertbild. Danach werden die Texel statistisch ausgewertet und durch einen Histogramm-basierten Klassifikator in Klassen eingeteilt. Die Generierung von Aufbauregeln wird durch die Berechnung von geometrischen Merkmalen bzgl. eines als repr¨asentativ angesehenen Texels realisiert. Einen sehr a¨ hnlichen Ansatz verfolgen Leu und Wee (Leu und Wee, 1985). Allerdings erzeugen sie erst ein Bin¨arbild mittels eines Schwellwertverfahrens. Die Texel werden dann durch zusammenh¨angende Bereiche im Bin¨arbild bestimmt. Anschließend werden die so ermittelten Texel bzgl. ihrer geometrischen Merkmale untersucht und entsprechend klassifiziert. Als letzter Schritt werden die Aufbauregeln generiert. Weitere Ans¨atze dieser Art geben eine oder auch mehrere geometrische Formen vor. Blostein und Ahuja (1989) beschreiben Texel als Kreisscheiben mit gleichbleibendem Grauwert. Die Kreisscheiben werden durch sechs LoG-Filter8 mit unterschiedlichen Großen ¨ detektiert. Auch Wen und Fryer (1991) nutzen LoG-Filter zur Detektion von Texeln. Im Gegensatz zu dem vorhergehenden Verfahren werden hier balkenformige ¨ Texel extrahiert.
6.3.2 Texelextraktion und Aufbauregel Ein Ansatz fur ¨ Bin¨arbilder, der sowohl die Texel aus Bildern extrahiert als auch deren Aufbauregeln berucksichtigt, ¨ ist in Lu und Fu (1978) beschrieben. Allerdings wird hier ein Bildpunkt als Texel angenommen, sodass die Extraktion der Texel nicht weiter aufw¨andig ist. Die Aufbauregeln lassen sich durch Grammatiken beschreiben. Das Bild wird in kleine Regionen unterteilt, und fur ¨ jede Region l¨asst sich ein Graph (Baum) fur ¨ die Bildpunkte erstellen. Der so erstellte Graph wird mit einem Graphen, der bereits durch die Grammatik erstellt wurde, verglichen. 8 LoG steht fur ¨ Laplace of Gaussian. Dadurch wird ein Kantendetektor realisiert, der die Bildfunktion zweimal (diskret) ableitet (vgl. auch Marr (1982)).
80
6 Texturanalyseverfahren
Wie bereits erw¨ahnt, wurde das Verfahren nur auf Bin¨arbilder angewendet, und die Autoren schreiben selbst, dass das Verfahren, angewendet auf reale Texturen, sehr kompliziert und unpraktisch sei. Auch die bereits erw¨ahnte GPM Conners und Harlow (1980b) l¨asst sich zur Bestimmung bzw. Analyse von deterministischen Texturen nutzen. Im Gegensatz zur Nutzung statistischer Werte (vgl. Abschnitt 6.2.2, Seite 72) werden hierbei die Große ¨ und Periode von Texturen aus der GPM ermittelt. Feine, sich schnell wiederholende Texturen weisen dabei eine kleine Periode auf – grobe Texturen entsprechend großere ¨ Perioden.
6.4 Zusammenfassung Die im Abschnitt 6.3 vorgestellten Texturanalyseverfahren eignen sich besonders zur Analyse von deterministischen Texturen. Sie werden in der Regel auf einen Bildausschnitt angewendet und weisen fur ¨ sehr regelm¨aßige Texturen gute Ergebnisse auf. Regelm¨aßig bedeutet in diesem Zusammenhang, dass die Art der Texel und auch die Wiederholfrequenz sich nicht (wesentlich) uber ¨ eine Region im Bild a¨ ndert. Diese Voraussetzungen findet man allerdings eher selten in realen Szenen. In realen Szenen weisen Texturen sich a¨ ndernde Texel und auch sich a¨ ndernde Wiederholfrequenzen auf. Somit sind die strukturellen Verfahren nicht so gut geeignet, um auf reale Szenen angewendet zu werden.
Abbildung 6.5: Vergleich uber ¨ die Klassifikationsraten (Ordinate) von Texturanalyseverfahren (Abszisse) (nach Wagner (1996))
Die statistischen Verfahren (Abschnitt 6.2) sind zur Analyse realer Texturen und
6.4 Zusammenfassung
81
dadurch auch realer Szenen besser geeignet. Statistische Verfahren sind aufgrund ihrer mathematischen Betrachtungsweise von Texturen allgemeingultiger ¨ als alle anderen in diesem Kapitel vorgestellten. Diese Tatsache l¨asst sich auch in den Arbeiten von Conners und Harlow (Conners und Harlow, 1980a) sowie Wagner (Wagner, 1996) wiederfinden. Insbesondere in Wagner (1996) wurden verschiedene Texturanalysemodelle zur Klassifikation verglichen. Die Ans¨atze waren im Einzelnen: lokale Merkmale aus Blanz (1993) (Loc), Merkmale nach Haralick u. a. (1973) (Har), Summen- und Differenzhistogramme nach Unser (1986) (Uns), Laufl¨angenkodierung nach Galloway (1975) (Gal), geometrische Merkmale aus Bin¨arbildfolgen nach Chen u. a. (1995) (Che), Multiskalenanalyse mit Wavelets nach Laine und Fun (1993) (Lai) und fraktale Merkmale nach Roß u. a. (1995) (Fra). Die Ergebnisse der Untersuchungen sind in Abbildung 6.5 vergleichend dargestellt. Die Erkennungsrate ist in Prozent abgetragen. Die Ans¨atze wurden auf folgenden Datens¨atzen getestet: a) eine Stichprobe aus den Brodatztexturen Brodatz (1966) – nicht gefullter ¨ Balken; b) eine Stichprobe aus Kunststoffdekoren FhG-IIS-A (1996) – gemusterter Balken und c) eine Stichprobe aus Hauttumoren – schwarzer Balken. Gemittelt uber ¨ alle getesteten Texturklassen respektive Texturanalyseverfahren und betrachtete Analysezeiten ergaben die statistischen Ans¨atze die besten Analyseergebnisse. Diese Ergebnisse decken sich auch mit den bereits von Conners und Harlow ermittelten Ergebnissen in Conners und Harlow (1980a). Die Untersuchungen von Conners und Harlow sowie Wagner ergaben, dass statistische Texturanalyseverfahren allgemein einsetzbar sind, da sie im Mittel die besten Klassifikationsraten aufweisen. Die Texturanalyse wird u.a. zur Analyse von Glaskeramiken (s. Weisz u. a. (2000)), in der Medizin zur Klassifikation von Hauttumoren (s. Roß u. a. (1995)) oder auch in zur Prufung ¨ von Textiloberfl¨achen (s. Schulz-Mirbach (1996)) oder allgemein zur Oberfl¨acheninspektion (s. Kuhlbeck ¨ und Wagner (1996)) eingesetzt. ¨ Die korrespondierenden Ubungsaufgaben lassen sich im Anhang C.5 und C.6 finden.
Kapitel 7
Segmentierung Die Segmentierung hat die Aufgabe, in Bildern die Trennung der zu untersuchenden Objekte von den ubrigen“ ¨ Bildstrukturen mit geeigneten Methoden zu ” ermoglichen, ¨ also die Trennung von Objekt und Hintergrund. Ebenso ist eine Aufgabe die Vereinzelung von sich beruhrenden ¨ Objekten. Auch eine Zerlegung eines Objektes in Unterobjekte kann Ziel der Segmentierung sein. Die Segmentierung kann auch als Klassifikation auf Pixelebene betrachtet werden, indem zwischen Objektpixel“ und Nichtobjektpixel“ unterschieden wird. Dafur ¨ mussen ¨ geeig” ” nete Merkmale – zum Beispiel der Grauwert – auf Pixelebene bestimmt werden. Segmentierungsverfahren lassen sich in einfache und komplexe Verfahren unterteilen. In der Regel ist das Ergebnis der Segmentierung ein logisches Bild, in dem das Objekt logisch den Wert Eins hat und der Hintergrund den Wert Null. Basierend auf der Segmentierung konnen ¨ im Anschluss bestimmte Merkmale bezogen auf das jeweilige Objekt extrahiert werden (vgl. Kapitel 8), die dann eine Klassifikation des Objektes erlauben. Beispielsweise mussen ¨ zur Schrifterkennung (Optical Character Recognition, OCR) die einzelnen Objekte (Buchstaben) segmentiert werden, damit ein handelsubliches ¨ OCR-System die Schrift erkennen kann. Ein segmentiertes Bild kann unvollst¨andig segmentiert sein, was bedeutet, dass die Segmentierung luckenhaft ¨ ist. Das heißt, dass nicht alle Strukturen im Bild dem einen oder anderen logischen Wert zugewiesen worden sind. Das kann beispielsweise bei so genannten kantenorientierten Segmentierungsverfahren auftreten, die mit Hilfe eines Diskontinuit¨atskriteriums ein Bild partitionieren. Hierbei kann an einigen Stellen im Bild fehlerhafte oder keine Gradienteninformation vorliegen, sodass sich eben an diesen Stellen keine Kantenpunkte detektieren lassen. Dadurch treten Lucken ¨ in der Kontur auf. Diese Lucken ¨ mussen ¨ mit so genannten Konturpunktverkettungsverfahren nachbearbeitet werden, um geschlossene Konturen und somit eine vollst¨andige Segmentierung zu erzielen. Man spricht in
84
7 Segmentierung
diesem Zusammenhang auch von einer Untersegmentierung. Verfahren, die ein Homogenit¨atskriterium zur Segmentierung nutzen, erzeugen im Allgemeinen ein vollst¨andig segmentiertes Bild.1 Dies sind Verfahren, die zum Beispiel den Grauwert heranziehen, um zusammengehorige ¨ Regionen im Bild zu bestimmen. Wird hierbei das Homogenit¨atskriterium quasi zu genau ausgelegt, was bedeutet, dass zu viele einzelne und in der Regel auch zu kleine Regionen segmentiert werden, dann spricht man in diesem Zusammenhang auch von einer ¨ Ubersegmentierung Segmentierung ist im Allgemeinen subjektiv. Das bedeutet, dass die Gute ¨ der Segmentierung kaum durch objektive Kriterien bewertet werden kann. Eine Moglich¨ keit besteht in der Differenzbildung der vom menschlichen Betrachter visuell gefundenen Fl¨ache mit der automatisch gefundenen Fl¨ache. Es kann dafur ¨ ein Abstandsmaß bzgl. der Randpunkte der beiden segmentierten Fl¨achen definiert werden. Typischerweise wird ein quadratischer Abstand berechnet. Je großer ¨ der Abstand wird, desto schlechter ist die Segmentierung. Wie bereits erw¨ahnt, konnen ¨ Segmentierungsverfahren in vollst¨andige oder unvollst¨andige unterteilt werden. Ebenso kann man in punktorientierte und kantenorientierte unterscheiden. Auch zwischen bereichsbasierten oder kantenorientierten wird unterschieden. Wir wollen kantenbasierte (vgl. Abschnitt 7.1) und bereichsbasierte (vgl. Abschnitt 7.2) Verfahren unterscheiden, wobei die bereichsbasierten mit den punktorientierten gleichzusetzen sind. Die sog. Bereichswachstumsverfahren sollen gesondert behandelt werden (vgl. Abschnitt 7.3), da sie Fl¨achen gem¨aß eines Homogenit¨atskriteriums bestimmen, die dann logisch zusammengehoren. ¨ Dieses Kriterium ist nicht nur auf Grauwerte beschr¨ankt, sondern kann auch ein Farb- oder ein Texturenergiewert sein. Somit sind diese Verfahren allgemeingultiger ¨ als beispielsweise ein einfaches Schwellwertverfahren bzgl. des genutzten Kriteriums. Auch hybride Verfahren – also Kombinationen von bereichs- und kantenbasierten Verfahren – kommen in der Praxis zum Einsatz. Ein solches hybrides Verfahren zur texturbasierten Segmentierung von Grauwertbildern wird in Hermes u. a. (2000) beschrieben.
7.1 Kantenbasierte Segmentierung Soll ein Bild mittels eines Diskontinuit¨atskriteriums segmentiert werden, so sind in der Regel zwei Verarbeitungsschritte notwendig. Als Erstes mussen ¨ die Diskontinuit¨aten im Bildsignal (Kantenpunkte) detektiert werden. Diese werden im Allgemeinen aufgrund der Gradienteneigenschaft eines jeden Bildpunktes ermittelt. Der zweite Schritt ist die so genannte Konturpunktverkettung. Im Rah1
Vollst¨andig segmentiert bedeutet nicht gleichzeitig korrekt segmentiert. Es konnen ¨ durchaus auch bei einem vollst¨andig segmentierten Bild bzgl. der Segmentierung Fehler auftreten!
7.1 Kantenbasierte Segmentierung
85
men dieses Verarbeitungsschrittes werden zusammenh¨angende Objektkonturen bestimmt. Diese beiden Schritte sind notwendig, da eine Kantenpunktdetektion alleine noch nicht zu einer geschlossenen Kontur fuhrt. ¨ Hierzu ist eine Verket¨ dann wiederum tung2 notwendig. Aufgrund der geschlossenen Konturen konnen Merkmale bzgl. dieser Konturen – wie L¨ange, Kettencode etc. – extrahiert werden, um die Konturen zum Beispiel als geometrische Objekte – wie Kreis, Dreieck, etc. – zu klassifizieren. Eine gradientenbasierte Kantendetektion extrahiert zwar Bildpunkte, die an Objektr¨andern oder -kanten liegen, aber auch solche, die durch Rauschen verursacht werden. Und nicht immer vermindert eine Rauschgl¨attung (vgl. Kapitel 4) die Rauschpunkte so, dass eine anschließende Kantendetektion wirklich nur Kantenpunkte detektiert. Außerdem kann eine Rauschgl¨attung die Steilheit der Kanten verf¨alschen, sodass im Extremfall die Kante respektive die Kantenpunkte nicht korrekt detektiert werden. Erst eine Konturpunktverkettung ermoglicht ¨ die Detektion zusammengehoriger ¨ Konturlinien.
7.1.1 Kantenextraktion Wie bereits in Kapitel 5 erl¨autert wurde, konnen ¨ Kanten(-punkte) mit Filtern detektiert werden. Hierzu werden im Allgemeinen Intensit¨atsdifferenzen erster und zweiter Ordnung berechnet.3 Diese lokalen Filtermasken erzeugen in Kantenbereichen eine relativ hohe Operatorantwort (sprich: hohe Intensit¨atswerte). Bei homogenen Fl¨achen mit gleichbleibendem Intensit¨atswert ist die Differenz eher Null, sodass hier keine oder eine nur sehr geringe Operatorantwort berechnet wird. Die Auswahl des Kantendetektors h¨angt von der jeweiligen Problemstellung ab. Fur ¨ eine Kantendetektion, basierend auf der Berechnung des Gradienten, wird das Bild in zwei orthogonale Richtungen (typischerweise in x- und in y-Richtung) abgeleitet, d.h. die Intensit¨atsdifferenzen werden fur ¨ die beiden Richtungen berechnet. Anschließend kann gem¨aß Gleichung 5.5 der Gradientenbetrag ∇( x, y) ermittelt werden. Des Weiteren kann gem¨aß Gleichung 5.6 die Richtung des Gradienten bestimmt werden. Die Große ¨ der Filtermaske und somit der betrachteten lokalen Nachbarschaft ist problemabh¨angig und muss entsprechend gew¨ahlt werden. Ist das Bild wenig verrauscht, so kann mit einer relativ kleinen Maske gearbeitet werden – beispielsweise mit dem Roberts-Cross-Operator (vgl. Gleichung 5.9 bzw. 5.10), der sehr feine Strukturen (und somit auch Rauschpunkte) detektiert. Soll eine gleichzeitige Rauschunterdruckung ¨ erzielt werden, so ist es sinnvoll, eine großere ¨ Filtermaske zu w¨ahlen, die auf der Grundlage des SobelOperators (vgl. Gleichung 5.12) realisiert werden kann. Dies hat den Vorteil, dass nicht die Differenzen einzelner Bildpunkte (die dann auch mal Rauschpunkte sein konnen), ¨ sondern die von gemittelten (gegl¨atteten) Fl¨achen (lokale Umgebung) 2 3
Manchmal auch – leider f¨alschlicherweise – als Gruppierung bezeichnet. Kantendetektion im Frequenzraum soll hier vernachl¨assigt werden.
86
7 Segmentierung
berechnet werden. Das Ergebnis einer solchen Kantendetektion sollte ein Kantenbild sein oder eine Liste mit den identifizierten Kantenpunkten. Als zus¨atzliche Information zu dem einzelnen Kantenpunkt stehen die Gradientenrichtung und darauf aufbauend die Orientierung der jeweiligen Tangente sowie der jeweilige Gradientenbetrag zur Verfugung. ¨ Das Bild oder die Liste dient mit allen Zusatzinformationen als Eingabe fur ¨ die anschließende Konturpunktverkettung. Eine (relativ aufw¨andige) Konturpunktverkettung ist notwendig, da eine solche Kantendetektion keine topologisch zusammenh¨angenden Kanten extrahieren kann.
7.1.2 Konturpunktverkettung Die aus der Kantenpunktdetektion resultierenden Gradientenbilder weisen oftmals Lucken ¨ auf. Die einzelnen Kantenverl¨aufe bestehen manchmal aus mehreren parallel verlaufenden Gradientenzugen ¨ und sind unter Umst¨anden mehrere Pixel breit. Konturpunktverkettungsverfahren oder auch Konturverfolgungsverfahren dunnen ¨ diese breiten“ Gradientenzuge ¨ aus, fugen ¨ die einzelnen Kantenpunk” te zu einer geschlossenen Kontur(-linie) zusammen und binarisieren diese. Die geschlossenen Konturen konnen ¨ dann beispielsweise mittels eines Ketten-Codes (s.u.) beschrieben und auch zur Objekterkennung herangezogen werden. Es wird zwischen lokalen und globalen Konturpunktverkettungsverfahren unterschieden. Lokale Verfahren haben den Vorteil, dass sie relativ einfach zu realisieren sind, sie erzeugen aber bei sehr komplexen Strukturen nur unbefriedigende Ergebnisse. Globale Verfahren sind in der Regel aufw¨andig, nutzen meist a priori Wissen uber ¨ Kanten (zum Beispiel Modellkanten) und fuhren ¨ bei komplexen Strukturen zu zufriedenstellenden Ergebnissen. Im Folgenden sollen zwei h¨aufig verwendete Konturpunktverkettungsverfahren kurz dargestellt werden. Die Hough-Transformation (s.u.), so wie wir sie kennen lernen ist eher als ein einfaches globales Verfahren zu verstehen, das besonders gut kolineare (Teil-)Konturen vervollst¨andigt. Der Ketten-Code (s.u.) kann als ein lokales Verfahren verstanden werden, das in einer lokalen Umgebung nach benachbarten Kantenpunkten sucht und diese mittels Ketten-Code beschreibt. Hough-Transformation Die Hough-Transformation eignet sich besonders gut, um kollineare Bildpunkte (Kantenpunkte) zu bestimmen. Die mathematische Grundlage bildet hier die Darstellung von Geraden in der Hesse’schen Normalform: r = x cos ϕ + y sin ϕ
(7.1)
In Abbildung 7.1 ist die grafische Darstellung einer Geraden in Hesse’scher Normalform abgebildet. Wird nun das Paar (Radius respektive Abstand r und der
7.1 Kantenbasierte Segmentierung
87
y
A
H = N c o s j
+ O s in j
H
j
B x
Abbildung 7.1: Gerade in Hesse’scher Normalform
Winkel ϕ) in eine Matrix eingetragen, so erh¨alt man die so genannte (r, ϕ)-Ebene oder den (r, ϕ)-Raum. Werden alle Geraden berechnet, die durch einen (Kanten4 Wird fur )Punkt gehen, so resultiert ein so genanntes Geradenbuschel. ¨ ¨ jeden Ge¨ so kann der radenpunkt im (r, ϕ)-Raum der Eintrag an der Stelle um Eins erhoht, (r, ϕ)-Raum auch als Akkumulator angesehen werden. Punkte, die auf einer Geraden liegen (und somit kollinear sind), erzeugen an derselben Stelle in der Matrix einen Eintrag. Die Auswertung des (r, ϕ)-Raums l¨auft in etwa wie folgt ab: Alle Matrixelemente, die einen hohen Wert haben, deuten auf kollineare Bildpunkte hin. Die Positi¨ Radius r und den on des Matrixelementes im (r, ϕ)-Raum gibt den zugehorigen Winkel ϕ an. Wird jetzt aufgrund dieses Eintrags die entsprechende Gerade in das Eingabebild projiziert, so schließen sich automatisch Lucken. ¨ Als eine mogli¨ che Nachbearbeitung mussten ¨ die uberstehenden“ ¨ Geradenenden abgeschnitten ” werden (clipping). In Abbildung 7.2 sind die Schritte der Projektion und des Clipping schematisch dargestellt. Ketten-Code Der Ketten-Code eignet sich zur Beschreibung von (bin¨aren) Strichzeichnungen. Beispielsweise konnen ¨ die Randpunkte eines Objektes mittels Ketten-Code beschrieben werden. Hierzu wird eine Richtungsrose definiert. In nachfolgender Abbildung 7.3 ist zur Verdeutlichung eine solche Richtungsrose fur ¨ eine 8erNachbarschaft grafisch dargestellt. Eine Verkettung erfolgt quasi nebenbei, indem in einer Umgebung ein benachbarter Kantenpunkt gesucht und dann in den Ketten-Code integriert wird. Jedes Glied innerhalb der Kette hat einen gewissen Abstand zu seinem Vorg¨anger 4
Hieraus resultiert die typische liegende Parabel, die die Eintr¨age aller moglichen ¨ Geraden bzgl. eines Punktes im (r, ϕ )-Raum darstellt. Schnittpunkte von Parabeln im (r, ϕ )-Raum bedeuten, dass an dieser Stelle im Kantenbild zwei Punkte kollinear sind.
88
7 Segmentierung
(a)
(b)
(c)
Abbildung 7.2: Hough-Transformation – Beispielbilder: (a) Eingabebild mit einzelnen Kantenpunkten, (b) Bild nach Hough-Transformation und projizierten Geraden, (c) Bild nach Clipping
3
2
1
0 4
5
6 (a)
7 (b)
Abbildung 7.3: (a) Richtungscode bzgl. 8er-Nachbarschaft und (b) einfaches Objekt fur ¨ Ketten-Code
bzw. Nachfolger. Bei geradzahligem Code fur ¨ horizontale und vertikale Nachbarn ergibt sich eine relative L¨ange von 1. Fur ¨ ungeradzahligen Code bei diagonalen √ Nachbarn wird ein relativer Abstand der L¨ange 2 angenommen. Dadurch kann eine Umfangsbestimmung sehr einfach realisiert werden. Das Objekt in Abbildung 7.3 kann – beginnend am Startpunkt (Kreis bzw. Pfeil) – mittels des Kettencodes bzgl. einer 8er Nachbarschaft wie folgt beschrieben werden: Objekt, hat ” Kettencode K = (0, 1, 1, 2, 2, 2, 4, 4, 4, 3, 5, 5, 5, 6, 6, 7, 0, 0, 0) “. Eine solche Beschreibung hat mehrere Vorteile. Erstens erfolgt dadurch eine erhebliche Datenreduktion. Die Objekte lassen sich durchnummerieren, und in einer Datenbank kann genau dieser Kettencodevektor abgelegt werden. Dadurch erh¨alt man eine sehr kompakte Repr¨asentation eines Objektes. Zweitens kann, wie bereits erw¨ahnt, der Umfang eines Objektes sehr einfach bestimmt werden, indem entsprechend den
7.2 Bereichsbasierte Segmentierung
89
√ Zahlenuberg¨ ¨ angen im Vektor eine 1 oder ein 2 addiert wird. Weitere Merkmale (z.B. Fl¨ache) konnen ¨ basierend auf dem Kettencode extrahiert werden. Drittens lassen sich auch einfache geometrische Transformationen direkt auf dem Kettencode durchfuhren. ¨ So ist zum Beispiel eine Rotation um 90 o eine simple Addition von 2 zu jedem Eintrag im Kettencodevektor. Dadurch kann in gewissem Sinne eine rotationsinvariante Objektrepr¨asentation erreicht werden. Viertens kann ¨ die Repr¨asentation genutzt werden, um Ahnlichkeiten zwischen den Objekten zu bestimmen. An diese Stelle sei beispielsweise auf folgende Literatur verwiesen: Wahl (1989); Haber¨acker (1985).
7.2 Bereichsbasierte Segmentierung Die bereichsbasierten oder punktorientierten Verfahren nutzen ein so genanntes Homogenit¨atskriterium, um zu entscheiden, ob ein Bildpunkt zu einer Region (oder einem Objekt) oder zum Hintergrund (der auch eine Region oder ein Objekt sein kann) gehort ¨ oder nicht. In vielen F¨allen wird der Intensit¨atswert (Grauwert) als Homogenit¨atskriterium verwendet, und gem¨aß einer Schwelle wird entschieden, je nachdem ob der Grauwert uber ¨ oder unter der Schwelle liegt, welchem Bereich der Bildpunkt zugeordnet wird. Im einfachsten Fall ist das tats¨achlich ein einfaches Schwellwertverfahren, das als Resultat ein logisches (in der Praxis ein bin¨ares Schwarz/Weiß-) Bild erzeugt. In weiterreichenden Segmentierungsverfahren wird u.a. ein so genanntes Bereichswachstumsverfahren ( Region Growing“) ” verwendet, um Bildpunkte mit gleichem oder a¨ hnlichem Grauwert einander zuzuordnen. Ein Beispiel fur ¨ ein solches Bereichswachstumsverfahren wird in Abschnitt 7.3 vorgestellt. Das Resultat ist hier in der Regel ein Bild mit unterschiedlichen Regionen, bei denen alle zugehorigen ¨ Bildpunkte logisch gleich markiert (bzw. gelabelt) sind. Die einzelnen zusammengehorigen ¨ Regionen werden zur Visualisierung mit unterschiedlichen Grauwerten dargestellt.
7.2.1 Einfaches Schwellwertverfahren Treten in Bildern helle Objekte5 vor dunklem Hintergrund (oder umgekehrt) auf, so konnen ¨ diese Objekte mittels eines einfachen Schwellwertverfahrens (oder auch einer Schwellwertoperation) segmentiert werden. Falls sich ein helles Objekt vor einem dunklen Hintergrund im Bild befindet, ist es ublich, ¨ dass die Bildpunkte, die oberhalb (und gleich) einer Schwelle T als Objektpixel, und alle Bildpunkte, die unterhalb der Schwelle T liegen, als Nichtobjektpixel klassifiziert werden.6 Ei5 An dieser Stelle bereits von Objekten zu sprechen, ist eigentlich nicht ganz korrekt, da die Strukturen ja noch nicht als zusammengehorig ¨ segmentiert und gem¨aß der extrahierten Merkmale einer (Objekt-)Klasse zugeordnet wurden. Aus sprachlichen Grunden ¨ wollen wir aber weiterhin den Begriff Objekt“ verwenden. ”6 T wg. engl. “threshold“ .
90
7 Segmentierung
ne allgemeine Vorschrift lautet: A T ( x, y) =
1, wenn E( x, y) ≥ T 0, wenn E( x, y) < T
(7.2)
mit 0 ≤ T ≤ 255. Diese Abbildungsfunktion kann sehr einfach und effizient durch eine LUT realisiert werden. Die Schwelle kann aus einer Statistik erster Ordnung – einem Histogramm – ermittelt werden. In dem oben beschriebenen Fall (helles Objekt und dunkler Hintergrund) werden im Histogramm zwei eindeutige Maxima (um den mittleren hellen Grauwert und um den mittleren dunklen Grauwert) zu finden sein. Die Schwelle wird typischerweise auf das Minimum zwischen den Maxima gelegt. Man spricht in diesem Fall auch von einem bimodalen Histogramm. In Abbildung 7.4 ist dieses Vorgehen an einem Beispiel dargestellt. In der Abbildung 7.4 (a) ist ein Grauwertbild mit dem korrespondierenden Histogramm 7.4 (b) abgebildet. Wird die Schwelle auf das Minimum zwischen den beiden lokalen Maxima gelegt, so entsteht das in 7.4 (c) segmentierte und binarisierte Bild. Dieses Verfahren kann auf mehrere Schwellwerte Ti erweitert werden, mit i = 1, 2, .... Auch hier ist die Voraussetzung, dass die jeweiligen (relativ eindeutigen) Minima zwischen zwei ausgepr¨agten Maxima liegen und dass die einzelnen zu trennenden Objekte jeweils aus einem relativ einheitlichen Grauwert bestehen. Betrachten wir also ein diskretes Bildsignal E( x, y) mit {0 ≤ x ≤ M ∩ 0 ≤ y ≤ N }. E soll in disjunkte, nichtleere Teilmengen e1 , e2 , . . . , e p gem¨aß einem Homogenit¨atskriterium unterteilt werden, sodass gilt: p i=1
ei = E.
ei ist zusammenh¨angend ∀i mit i = 1, . . . , p.
∀ei ist das Homogenit¨atskriterium H (ei ) erfullt. ¨ Fur ¨ jede Vereinigungsmenge zweier benachbarter e i , e j ist H (ei ∪ e j ) nicht erfullt. ¨ 7 Kann beispielsweise eine Shadingkorrektur (vgl. Abschnitt 4.1.3) nicht durchgefuhrt ¨ werden, sodass das gesamte Bild einen relativ ebenen Hintergrund hat, so l¨asst sich durch so genannte lokale Schwellen das Bild dennoch geeignet segmentieren. Hierbei wird das Eingabebild E in kleinere Subfenster W j unterteilt. Fur ¨ jedes dieser Wi wird ein lokales Histogramm berechnet und die entsprechende lokale Schwelle T j bestimmt. Ein Vorteil gegenuber ¨ einer globalen Schwelle ist außerdem, dass die lokalen Schwellen den im Bild inh¨arenten Helligkeitsschwankungen besser angepasst sind. Die Große ¨ der W j ist beliebig, und im Extremfall 7 Sonst mussten ¨ diese Bereiche zusammengefasst werden, da sie dem gleichen Homogenit¨atskriterium genugen! ¨
7.2 Bereichsbasierte Segmentierung
91
(a)
(b)
(c)
Abbildung 7.4: a) Original; b) korrespondierendes Histogramm (Schwelle bei 175 gew¨ahlt) und c) korrespondierendes segmentiertes Bild (invertiert). Diese Abbildung befindet sich auch auf der beiliegenden CD-ROM im Verzeichnis Abbildungen
92
7 Segmentierung
wird fur ¨ jeden Bildpunkt bzgl. einer lokalen Nachbarschaft eine Schwelle T j berechnet. Diese einfachen Schwellwertverfahren klassifizieren einen Bildpunkt nur nach dem Grauwert. Die lokale Nachbarschaft wird nicht betrachtet. Dies setzt voraus, dass eine nahezu optimale Schwelle bestimmt werden kann. Im folgenden Abschnitt soll das Auffinden einer optimalen Schwelle erl¨autert werden.
7.2.2 Optimale Schwelle Wie oben bereits erw¨ahnt, geht man davon aus, dass die einzelnen Objekte durch einen einheitlichen Grauwert charakterisiert sind. Allerdings kann nicht immer davon ausgegangen werden, dass der Grauwert eines Objektes nahezu konstant ist. Mit anderen Worten: Die Grauwerte eines Objektes unterliegen einer Verteilungsfunktion. Die Verteilung kann als Wahrscheinlichkeitsdichtefunktion beschrieben werden. Und zwar eine Wahrscheinlichkeitsdichtefunktion fur ¨ die ¨ die Grauwerte des Grauwerte des Objektes p O ( z) und eine entsprechende fur Hintergrundes p H ( z). Typischerweise w¨ahlt man als N¨aherung fur ¨ die jeweilige Wahrscheinlichkeitsdichtefunktion die Gauß’sche Wahrscheinlichkeitsdichtefunktion 1 ( z − µi )2 exp − pi ( z) = √ 2πσi 2σi2 ¨ den Fall eines Objektes vor einem Hintergrund. µ i sind die jeweimit I = O, H fur ligen Mittelwerte, und σi die entsprechenden Standardabweichungen. Sei weiter¨ einen Objektbildpunkt und PH fur ¨ den hin PO die a priori-Wahrscheinlichkeit fur Hintergrund, so gilt: PO + PH = 1. Dadurch ergibt sich die gesamte Intensit¨atsverteilung p( z) zu: p( z) = PO pO ( z) + PH p H ( z). Wird nunmehr eine Schwelle T festgelegt und alle Bildpunkte unterhalb T sollen als Hintergrund klassifiziert werden und alle Bildpunkte oberhalb T als Objektpunkte, so konnen ¨ Segmentierungsfehler – aufgrund der Tatsache, dass sich in der Regel die Wahrscheinlichkeitsverteilungen der beiden Bereiche uberlappen ¨ – wie folgt gesch¨atzt werden: Der Segmentierungsfehler FH ( T ), dass ein Objektpunkt als Hintergrundpunkt klassifiziert wurde, ergibt sich zu: T
FH ( T ) =
pO ( z)dz.
−∞
Entsprechend ergibt sich der Segmentierungsfehler FO ( T ), dass ein Hintergrundpunkt als Objektpunkt klassifiziert wurde, zu: FO ( T ) =
∞ T
p H ( z)dz.
7.2 Bereichsbasierte Segmentierung
93
Der Gesamtfehler Fges errechnet sich zu: Fges = P0 FH ( T ) + PH FO ( T )
(7.3)
Die Schwelle T ist dann optimal, wenn der Fehler minimal ist. Setzt man die entsprechenden Gleichungen in Gleichung 7.3 ein, differenziert nach T und setzt diese Ableitung gleich Null, so ergibt sich folgende quadratische Gleichung: σO PH 2 2 2 2 2 2 2 2 2 2 2 (σ H − σO ) T + 2(µ HσO − µOσ H ) T + σ H µO − σO µ H + 2σ HσO ln =0 σ H PO Aufgrund der Art der Gleichung existieren zwei Schwellwerte fur ¨ eine optimale Segmentierung. Wird vereinfachend angenommen, dass die Standardabweichungen gleich sind, also σ H = σO = σ , so erhalten wir eine optimale Schwelle bei: T=
P µO + µ H σ2 − ln O 2 µO − µ H PH
Sind die Wahrscheinlichkeitsverteilungen nicht bekannt, so mussen ¨ sie gesch¨atzt werden. Man berechnet dabei das minimale Fehlerquadrat basierend auf dem normierten Histogramm h( z). Wahl (1989) berechnet dieses mittels numerischer Optimierungsverfahren zu F=
zo
∑
z= zu
( p( Z ) − h( z)) → min
¨ Grauwert. mit zu als unterstem (kleinstem) und zo als oberstem (großtem) Eine Alternative zum Auffinden einer Schwelle T ohne die Grauwertverteilung (Histogramm) zu berucksichtigen, ¨ nutzt die Große ¨ einer Fl¨ache A der zu segmentierenden Objekte. Das Bild habe M Spalten und N Zeilen. Unter der Annahme, A dass die zu segmentierende Objektfl¨ache MN einen bestimmten prozentualen Anteil an der Gesamtfl¨ache hat, kann die Schwelle T im normierten Histogramm ermittelt werden, indem von der Verteilung der entsprechende Anteil an Bildpunkten abgeschnitten wird. Somit gilt: T
A
∑ h(z) ≤ 1 − MN
t=1
7.2.3 Allgemeine Anmerkungen zu Schwellwertverfahren Es ist unter Umst¨anden sinnvoll, das Bild, bevor es segmentiert werden soll, zu gl¨atten (vgl. Abschnitt 4.2.2), da dadurch die einzelnen Bereiche im Bild bzgl. ihrer Grauwerte kompakter sind. Ebenso konnen ¨ dadurch Lucken ¨ in den Bereichen aufgefullt ¨ werden. Da der Medianfilter kantenerhaltend ist und durchaus eine
94
7 Segmentierung
Gl¨attung des Bildes erzielt, eignet er sich im besonderen Maße fur ¨ eine Vorverarbeitung. Ein Mittelwertfilter hingegen gl¨attet auch die Kanten zwischen den Objekten, sodass durch eine Gl¨attung mit einem Mittelwertfilter nicht nur das Bild gegl¨attet wird, sondern auch die Objektgrenzen verwaschen werden. Ebenso kann es sinnvoll sein, eine Kontrastverst¨arkung durchzufuhren. ¨ Dadurch wird in der Regel der Kontrastunterschied zwischen Hintergrund und Objekt verst¨arkt. Es kann somit einfacher sein – nach einer Kontrastverst¨arkung – eine geeignete Schwelle zu finden. Des Weiteren sind die zu segmentierenden Objektfl¨achen in ihrer Große ¨ weniger abh¨angig vom Schwellwert.
7.3 Bereichswachstumsverfahren Im Folgenden sollen zwei bekannte Bereichswachstumsverfahren beschrieben werden. Die in Kapitel 3 beschriebene GRASSFIRE-Methode kann auch zu den Bereichswachstumsverfahren gez¨ahlt werden, da sie ausgehend von einem Zund¨ punkt zusammenh¨angende Fl¨achen im Bin¨arbild abbrennt“. ” Die beiden hier vorgestellten Verfahren sind zum einen ein Bereichswachstumsverfahren (s. Wahl (1989)) mit Startpunkten, die analog zu den Zundpunkten ¨ bei der GRASSFIRE-Methode zu verstehen sind (vgl. Abschnitt 7.3.1), und zum anderen ein Verfahren zum Bereichswachstum (s. Ballard und Brown (1982)), das ohne Startpunkte auskommt, das sog. Blob-Coloring Verfahren (vgl. Abschnitt 7.3.2).
7.3.1 Bereichswachstumsverfahren mit Startpunkten Die oben beschriebenen einfachen Schwellwertverfahren konnen ¨ sehr erfolgreich eingesetzt werden, wenn 1. die Anzahl der im Bild befindlichen Objekte moglichst ¨ a priori bekannt ist 2. die Intensit¨atswerte der einzelnen Objekte in ihren Intensit¨atswertebereichen sich nur geringfugig ¨ (oder besser gar nicht) uberlappen ¨ und 3. dadurch geeignete Schwellwert bestimmt werden konnen. ¨ Des Weiteren kann bei den Schwellwertverfahren nicht sichergestellt werden, dass die segmentierten Bereiche zusammenh¨angend sind, da im Allgemeinen die bestehenden Nachbarschaftsbeziehungen nicht berucksichtigt ¨ werden. Die Bereichswachstumsverfahren bieten hier eine Alternative. Sie segmentieren unter Berucksichtigung ¨ der Nachbarschaftsbeziehungen. Das Prinzip basiert darauf, dass fur ¨ jeden Bereich (idealerweise) ein Startpunkt pro Bereich gefunden wird. Ein iterativer Prozess ordnet nun a¨ hnliche, benachbarte Bildpunkt den jeweiligen Bereichen zu. Das wird so lange durchgefuhrt, ¨ bis s¨amtliche Bildpunkte zugewiesen sind. Als Erstes muss fur ¨ jedes im Bild vorkommende Grauwertpla-
7.3 Bereichswachstumsverfahren
9
95
9 1
9
9 2
9 3
9 4
9 1
9 3
(a)
9 1
2
4
(b)
9 5
2
1 1 3 2
3 2
7 8
9 3
6
4
(c)
9 4
(d)
Abbildung 7.5: Bereichswachstumverfahren: a) Eingabebild unterteilt in vier Teilfenster ¨ der uberfl ¨ ussigen ¨ Startpunkte; d) W1 bis W4 ; b) Bestimmen der Startpunkte; c) Loschen Initialbild fur ¨ das Bereichswachtumsverfahren
teau8 genau ein Startpunkt gefunden werden. Dieser ist dann der jeweilige Ausgangspunkt fur ¨ das Bereichswachstumsverfahren, durch dessen Anwendung genau jener Bereich des Plateaus zu einer Region zusammengefasst wird. Werden fur ¨ die jeweiligen Plateaus mehrere Startpunkte gefunden, so zerf¨allt dieses in so viele Bereiche, wie Startpunkte gefunden wurden. Solche Fehler konnen ¨ bis zu einem gewissen Grad durch eine nachfolgende Bereichsverschmelzung wieder behoben werden. Hierbei werden Bereiche mit gleichen oder a¨ hnlichen Eigenschaften (gem¨aß Homogenit¨atskriterium oder -kriterien) wieder zusammengefasst, also verschmolzen. Wird fur ¨ ein Plateau kein Startpunkt gefunden, so wird dieses einem benachbarten Bereich zugewiesen. Das wesentliche Problem ist das Auffinden der Startpunkte. Die Wahl der Startpunkte bestimmt nicht zuletzt die Gute ¨ der Segmentierung. In Abbildung 7.5 a) wird einer Anpassung an lokal ver¨anderliche Grauwerte des Bildes dadurch Rechnung getragen, dass das Bild in Teilbilder W1 , ..., W4 unterteilt wird. Fur ¨ jedes Teilbild wird das jeweilige Intensit¨atsminimum Imini und das 8
Fur ¨ das in Abbildung 7.5 dargestellte Bild bedeutet dies, dass es mit Berucksichtigung ¨ des Hintergrundes drei Plateaus gibt und somit drei Startpunkte gefunden werden mussen. ¨
96
7 Segmentierung
Intensit¨atsmaximum Imaxi bestimmt. Daraus ergeben sich lokale Schwellwerte Si zu: Imaxi − Imini Si = (7.4) k k ist ein empirischer Wert9 . Es ist darauf zu achten, dass die Startpunkte direkt auf den Objektgrenzen (Intensit¨atskanten) liegen, da hierdurch das Bereichswachstum zu Fehlern fuhren ¨ kann. Dies wird vermieden, indem der Intensit¨atsgradient an dem Startpunkt ermittelt wird. Mit anderen Worten: In der Umgebung und am Startpunkt selbst wird eine lokale Kantendetektion durchgefuhrt. ¨ Ist der so ermittelte Gradientenbetrag uber ¨ einer vorgegebenen Schwelle ∆S, so muss ein anderer Startpunkt gefunden werden. Da in der Praxis immer mehrere (auch benachbarte) Startpunkte gefunden werden, ist dies als eher unkritisch zu betrachten. Ebenso ist die Wahl von ∆S relativ unkritisch.10 Kommt dies zur Anwendung, ergeben sich daraus acht Startpunkte (vgl. Abbildung 7.5 b)). Der folgende Arbeitsschritt ist in Abbildung 7.5 c) schematisch dargestellt. Ausgehend von einem beliebigen Startpunkt PStarti (in der Abbildung durch die Ziffern 1 bis 8 dargestellt) wird der Reihe nach jeder andere PStart j geloscht, ¨ der vom ersten Punkt aus auf beliebigem Weg erreicht wird, ohne dass der Betrag der Intensit¨atsdifferenz zwischen dem Startpunkt und irgendeinem Punkt entlang des jeweiligen Pfades den Wert von Si uberschreitet. ¨ Beispielsweise werden so, ausgehend von Punkt PStart1 in Ab¨ Das Ergebnis ist in bildung 7.5 c), die Punkte PStart4 , PStart5 und PStart6 geloscht. Abbildung 7.5 d) dargestellt. Wurde bereits ein Startpunkt aus der Liste geloscht, ¨ so braucht ein Pfad von ihm ausgehend nicht mehr betrachtet zu werden. Die so ermittelten Startpunkte dienen einem Bereichswachstumsverfahren als Eingabe. Sie konnten ¨ (so die Hard- und Software es zuließe) sogar gleichzeitig verarbeitet werden. Die noch unmarkierten Bildpunkte (das sind in der ersten Iteration alle Bildpunkte bis auf die Startpunkte) werden der Reihe nach den entsprechenden Bereichen zugeordnet, sofern sie dem Homogenit¨atskriterium genugen. ¨ In der Regel wird das Homogenit¨atskriterium durch einen Schwellwert bestimmt. Die Intensit¨atsdifferenz des mittleren Intensit¨atswertes der Bildpunkte, die bereits zum Bereich gehoren, ¨ und dem gerade betrachteten (noch unmarkierten) Bildpunkt wird dann bestimmt. Ist der Betrag dieser Differenz kleiner als der Schwellwert, so wird der unmarkierte Bildpunkt dem Bereich zugeordnet. Andernfalls muss der Schwellwert angepasst werden. Auf jeden Fall muss der mittlere Schwellwert nach einer Iteration neu bestimmt werden. Dieses Verfahren bietet gegenuber ¨ den einfachen Schwellwertverfahren den Vorteil, dass kein A prioriWissen benotigt ¨ wird und zwischen den einzelnen Bereichen keine Lucken ¨ auftreten.
9 Wahl (1989) empfiehlt hier den Wert 3 einzusetzen, da er sich in vielen F¨ allen als brauchbar erwiesen habe. 10 Wahl (1989) empfiehlt hier den Wert von 10-20% des maximalen Intensit¨atswertes einzusetzen.
7.3 Bereichswachstumsverfahren
97
7.3.2 Bereichswachstumsverfahren ohne Startpunkte Ein anderes Bereichswachstumsverfahren, das ohne Startpunkte (wie oben beschrieben) auskommt, ist das so genannte Blob-Coloring-Verfahren. Ursprunglich ¨ ist das Verfahren fur ¨ Bin¨arbilder anwendbar und das Ziel besteht darin, einem Bildpunkt (blob) eine Farbe (color – Null oder Eins) zuzuweisen (vgl. Ballard und Brown (1982)). Hierbei wird ein Bild von oben nach unten und von links nach rechts mit der L-formigen ¨ Maske aus Abbildung 7.6 durchlaufen.
x l
x u
x c
Abbildung 7.6: L-formige ¨ Maske fur ¨ das blob-coloring
Die Farbe“ des Bildpunktes uber ¨ Xu und links Xl von dem gerade betrachteten ” Bildpunkt Xc wird bestimmt. Sind Xu und Xl nicht gesetzt, so startet bei Xc ein neuer Bereich. Ist Xu gesetzt und Xl nicht, so wird Xc dem Bereich von Xu zugeordnet. Ist Xu nicht und Xl gesetzt, so wird Xc dem Bereich von Xc zugeordnet. Sind Xu und Xl gesetzt, so wird Xc dem Bereich von Xu zugeordnet, wobei der Bereich von Xl a¨ quivalent zum Bereich von Xu ist. Auf Grauwertbilder l¨asst sich dieses Verfahren durch eine Erweiterung der Vergleiche um Schwellwerte anwenden. Der Schwellwert bestimmt dann, bei welchem Intensit¨atsunterschied (Betrag der Intensit¨atsdifferenz s.o.) eine neue Region initiiert wird. Dadurch wird die Anzahl der segmentierten Regionen beeinflusst. Ein kleiner Schwellwert l¨asst viele kleine Regionen und ein großer Schwellwert wenige große Regionen entstehen: Ist die Differenz zwischen Xc und Xl und die Differenz zwischen Xc und Xu jeweils großer ¨ als der Schwellwert, so star¨ als der tet bei Xc ein neuer Bereich. Ist die Differenz zwischen Xc und Xl großer Schwellwert und die Differenz zwischen Xc und Xu kleiner als der Schwellwert, so wird Xc dem Bereich von Xu zugeordnet. Ist die Differenz zwischen Xc und Xl kleiner als der Schwellwert und die Differenz zwischen Xc und Xu großer ¨ als der Schwellwert, so wird Xc dem Bereich von Xl zugeordnet. Ist die Differenz zwischen Xc und Xl und die Differenz zwischen Xc und Xu jeweils kleiner als der Schwellwert, so wird Xc dem Bereich von Xu zugeordnet, wobei der Bereich von Xl a¨ quivalent zum Bereich von Xu ist. Der Vorteil dieses Verfahrens gegenuber ¨ dem klassischen Bereichswachstumsverfahren ist der, dass hierbei keine Startpunkte benotigt ¨ werden. Alle bisher genannten Vorteile, zum Beispiel dass kein A priori-Wissen notig ¨ ist, greifen auch hier. Allerdings konnen ¨ die einzelnen Bereich aufgrund der gew¨ahlten L-formigen ¨ Maske und der damit verbundenen Vergleiche Ausfransungen enthalten.
98
7 Segmentierung
7.4 Zusammenfassung In diesem Kapitel wurden eine Reihe von Ans¨atzen zur Segmentierung vorgestellt. Dabei kann in Verfahren, die gem¨aß einem Diskontinuit¨atskriterium und in Verfahren, die gem¨aß einem Homogenit¨atskriterium segmentieren, unterschieden werden. In der Regel fuhren ¨ Verfahren, die gem¨aß einem Diskontinuit¨atskriterium segmentieren, zu einem so genannten untersegmentierten Bild. Das liegt in der Natur“ der Kanten (Diskontinuit¨aten). Insbesondere an Stellen, an denen ” sich mehrere Kanten treffen, liefern die Gradientenoperatoren unzureichende Ergebnisse. Oder an Stellen, an denen der Kontrast nicht groß genug ist, werden dann keine Kantenpunkte detektiert. Das kann beispielsweise durch eine schlechte Ausleuchtung der Szene verursacht werden. Verfahren, die ein Homogenit¨atskriterium verwenden, fuhren ¨ in der Regel zu einen so genannten ubersegmen¨ tierten Bild. Im schlimmsten Fall“ ist das Ergebnis einer solchen Segmentierung, ” dass jedes Pixel eine eigene Region ist. Die Frage, die sich dann stellt, lautet: Was hat man in dem Fall durch eine solche Segmentierung gewonnen? Als Fazit l¨asst sich sagen, dass die Segmentierung zu semantisch bedeutsamen Strukturen fuhren ¨ sollte. Dieser relativ einfache Satz bedeutet fur ¨ die praktische Umsetzung allerdings ein erhebliches Maß an Wissen und auch Gefuhl ¨ fur ¨ das zu w¨ahlende Segmentierungsverfahren sowie dessen Parametrierung. Die Segmentierung ist moglicherweise ¨ der wichtigste Schritt innerhalb des Bildverarbeitungsprozesses. Ermoglicht ¨ er doch gerade die sinnvolle Datenreduktion (Regionen oder Umrisse), die fur ¨ eine weitere Verarbeitung notwendig ist. Denn was nutzen ¨ einem extrahierte Merkmale (siehe Kapitel 8), die dann zur Klassifikation (siehe Kapitel 9) herangezogen werden, wenn die Strukturen, fur ¨ die diese Merkmale berechnet wurden, immer noch unzul¨anglich separiert und damit semantisch nicht bedeutsam sind? ¨ Die korrespondierenden Ubungsaufgaben finden Sie im Anhang C.8.
Kapitel 8
Extraktion von Merkmalen Um Bilder, die digital vorliegen, automatisch von einem Bildverarbeitungssystem analysieren und insbesondere interpretieren zu lassen, ist ein zun¨achst wesentlicher Schritt – die Extraktion von (geeigneten) Merkmalen – notwendig. Aufgrund dieser Merkmale kann dann ein Klassifikationsmechanismus (s. Kapitel 9) den Objekten Kategorien (Klassen) zuordnen. Des Weiteren konnen ¨ uber ¨ Objek¨ die Große ¨ eines Objektes – oder te1 quantitative Aussagen – beispielsweise uber auch qualitative Aussagen – das Objekt ist blau – gemacht werden. Durch die Extraktion von Merkmalen wird die Bildinformation in komprimierter Form wiedergegeben. Diese komprimierte Form wird oft auch als semantische Information bezeichnet.2 Eine – wenn nicht sogar die“ – wesentliche Voraussetzung fur ¨ eine Merkmalsex” traktion ist die Segmentierung des Bildes (vgl. Kapitel 7). Bzgl. der segmentierten Objekte konnen ¨ dann beispielsweise geometrische Merkmale berechnet werden, die es einem Klassifikator erlauben, einen Kreis aufgrund des Radienverh¨altnisses zu erkennen“. ” Die extrahierten Merkmale konnen ¨ sehr unterschiedlich sein bzgl. der Art und Weise, wie sie von Anwendern interpretiert werden konnen. ¨ Visuelle oder deskriptive Merkmale wie Farbe, Umfang oder Große ¨ der Fl¨ache konnen ¨ sehr leicht interpretiert werden, hingegen lassen sich Fourierkoeffizienten in der Regel nicht so leicht deuten. Grunds¨atzlich h¨angt die Auswahl, welche Merkmale aus den Bil1
Eine Struktur im Bild ist erst dann ein Objekt, wenn es als solches klassifiziert wurde. Es ist also nicht ganz korrekt, an dieser Stelle im Bildverarbeitungsprozess von Objekt zu sprechen. Aus Grunden ¨ des Sprachflusses und der allgemeinen Lesbarkeit soll aber weiterhin der Begriff Objekt“ verwendet ” werden. 2 Diese Bezeichnung ist eigentlich nicht ganz korrekt, da man ja noch nicht wirklich weiß, welches Objekt aus diesen Merkmalen an dieser Stelle des BV-Prozesses zu bestimmen ist. Leider existiert bis heute keine einheitliche Nomenklatur im Hinblick auf die Namensgebung innerhalb der Bildverarbeitung.
100
8 Extraktion von Merkmalen
dern extrahiert werden sollen, von der jeweiligen Anwendung ab. Insbesondere ist das Zusammenspiel von Merkmalen und Klassifikator von besonderer Bedeutung. Es gibt bis heute keine Methode, die fur ¨ einen Klassifikator die optimalen Merkmale oder auch die optimale Merkmalskombination bestimmt. Die Auswahl von Klassifikator und Merkmalen ist in großem Maße heuristisch und erfordert fur ¨ die erfolgreiche Anwendung ein gewisses Maß an Erfahrung. Allerdings existieren Methoden, mit denen man die Gute ¨ der Klassifikation bzgl. der gew¨ahlten Merkmale uberpr ¨ ufen ¨ kann, sodass man sich durch einen sukzessiven Prozess an eine gute Kombination von Merkmalen und Klassifikator herantasten kann. Die ¨ Uberpr ufung ¨ der Gute ¨ der Klassifikation im Zusammenspiel mit den Merkmalen wird auch als Signifikanzanalyse bezeichnet. In Niemann (1983) oder in Duda und Hart (1973) lassen sich weiterfuhrende ¨ Informationen zu diesem Thema finden. ¨ Im folgenden Kapitel 9 wird außerdem ein Uberblick uber ¨ ein paar ausgew¨ahlte Klassifikationsmethoden gegeben. Extrahierte Merkmale lassen sich u.a. in geometrische, densitometrische, statistische, Textur-basierte und Farb-basierte Merkmale unterteilen. Geometrische Merkmale oder auch Konturmerkmale geben Informationen uber ¨ die geometrische Form eines Objektes wieder. Sie sind fur ¨ die visuelle Erkennung sowie zur Beschreibung von Objekten gut geeignet. Im Allgemeinen identifiziert der Mensch Objekte eher nach der Gestalt bzw. Kontur als durch die Topographie von Grauwerten. Densitometrische Merkmale sind eher Merkmale der spektralen Art. Sie geben in der Regel uber ¨ physikalische Eigenschaften wie Reflexionsverhalten oder Absorptionsvermogen ¨ von Objekten Auskunft. Textur-basierte Merkmale (auch Strukturmerkmale) beschreiben im Allgemeinen die Eigenschaften von Objektoberfl¨achen. Eine weitere Art von Merkmalen sind die so genannten Kontextmerkmale. Sie beruck¨ sichtigen die Topologie des Bildes und beschreiben die nachbarschaftlichen Beziehungen eines Objektes zur Umgebung oder auch zu anderen Objekten im Bild. Sie werden oftmals dann genutzt, wenn andere einfachere Merkmale nicht greifen. Im Folgenden wird eine Auswahl von Merkmalen besprochen. Diese Auswahl erhebt keinesfalls den Anspruch der Vollst¨andigkeit!
8.1 Geometrische Merkmale Geometrische Merkmale ermoglichen ¨ es, die Form, Lage und Große ¨ eines Objektes zu kennzeichnen. Diese Messparameter lassen beispielsweise Aussagen uber ¨ die Große ¨ eines Objektes im Bild zu. Sinnvollerweise werden die sog. globalen geometrischen Merkmale aus Bin¨arbildern gewonnen. Des Weiteren konnen ¨ Momente geometrisch interpretiert werden.
8.1 Geometrische Merkmale
101
GlobaleMerkmale Die Objektfl¨ache Oarea kann im Bin¨arbild E( x, y) der Dimension M × N durch einfaches Z¨ahlen der gesetzten Bildpunkte ermittelt werden. Dies bedeutet, dass die Objektpunkte den Wert E( x, y) = 1 und entsprechend die Hintergrundpunkte den Wert E( x, y) = 0 aufweisen: Oarea =
N
M
¨ E( x, y) = {0, 1} ∑ ∑ E(x, y) fur
(8.1)
x=1 y=1
Voraussetzung fur ¨ diese Art der Fl¨achenbestimmung ist, dass das Objekt einzeln im Bild vorkommt. Dieses kann durch eine geeignete Segmentierung des Objektes und durch Kopieren des Objektes in ein Bin¨arbild erzielt werden. Der Objektumfang O perimeter wird aus der Anzahl der Bildpunkte bestimmt, die zu dem zum Umfang transformierten Bild E temp gehoren ¨ (s.a. Kapitel 3): Etemp = ( E ⊕ X )/ E Der Umfang berechnet sich dann zu: O perimeter =
M
N
¨ E temp ( x, y) = {0, 1} ∑ ∑ Etemp (x, y) fur
(8.2)
x=1 y=1
Durch die Berechnung von O perimeter erh¨alt man ein relativ ungenaues Maß fur ¨ den Umfang eines Objektes, ausgedruckt ¨ in der Anzahl der Bildpunkte. Eine etwas genauere Bestimmung fur ¨ den Umfang kann aus dem Kettencode (vgl. Abschnitt 7.1.2) ermittelt werden. Hierzu werden die direkten Nachbarn der Richtungen√0, 2, 4 und 6 mit 1 gewichtet und die Nachbarn der Richtungen 1, 3, 5 und 7 mit 2. Das entspricht dem tats¨achlichen Abstand zum Mittelpunkt des Bildpunktes unter der Annahme, dass die Bildpunkte quadratisch sind3 mit der Seitenl¨ange 1. Aus den beiden Merkmalen Umfang und Fl¨ache l¨asst sich ein weiteres bestimmen: Der so genannte Formfaktor O f orm p2a spiegelt das Verh¨altnis von O2perimeter (Umfang) zu O area Fl¨ache wider: O f orm p2a =
O2perimeter 4π Oarea
(8.3)
Ist das Objekt kreisformig, ¨ so hat dieses Verh¨altnis den Wert 1. Der Wert fur ¨ ¨ je zerklufteter ¨ das Objekt ist. O f orm p2a wird umso großer, 3
Das entspricht einem Seitenverh¨altnis von 1:1. Die Bildpunkte bei herkommlichen ¨ Monitoren weisen in der Regel allerdings ein Seitenverh¨altnis von 4:3 auf.
102
8 Extraktion von Merkmalen
Eine weitere Moglichkeit, ¨ einen Formfaktor O f ormr2r zu bestimmen, besteht in der Berechnung des Verh¨altnisses vom maximalen zum minimalen Radius. Der maximale Radius Rmax ist der Radius des Kreises, der um den geometrischen Schwerpunkt des Objektes gelegt wird, in dem das Objekt voll enthalten ist. Der minimale Radius Rmin ist der Radius des Kreises, der voll im Objekt liegt: O f ormr2r =
Rmax Rmin
(8.4)
Der Wertebereich dieses Verh¨altnisses ist analog zu dem Wertebereich von ¨ Objekten sind die beiden Radien nahezu gleich, soO f orm p2a . Bei kreisformigen dass der Wert von O f ormr2r = 1 ist. Entsprechend großer ¨ wird der Wert bei ellipsenformigen ¨ und zerklufteten ¨ Objekten.4 Die Koordinaten des geometrischen Schwerpunktes xs und ys lassen sich im Bin¨arbild wie folgt bestimmen: xs =
1
Oarea
Oarea
i=1
∑
xi bzw. y s =
1
Oarea
Oarea
j=1
∑
yj
(8.5)
Momente Die Momente einer zweidimensionalen diskreten Funktion E( x, y) erlauben ebenfalls die Darstellung von geometrischen Merkmalen wie Objektform oder auch daruber ¨ hinaus die Darstellung von Intensit¨atsverl¨aufen (vgl. auch Wahl (1989)). E( x, y) bedeutet in diesem Zusammenhang das zu beschreibende Objekt in segmentierter Form. D.h., die Intensit¨atswerte E( x, y) fur ¨ den Bereich innerhalb des Objektes sind gleich den Intensit¨atswerten des Eingangsbildes. Außerhalb des Objektes sind die Intensit¨atswerte auf Null gesetzt. Die Momente m pq einer zweidimensionalen diskreten Funktion E( x, y) der Dimension M × N (M Spalten und N Zeilen) berechnen sich nach: m pq =
M
N
∑ ∑ E(x, y)x p yq mit p, q = 0, 1, 2, ...
(8.6)
x=1 y=1
(p+q) wird auch als Ordnung des Momentes m pq bezeichnet. Der Fl¨achenschwerpunkt des Objektes (auch Objektschwerpunkt) ( xs , y s ) l¨asst sich wie folgt aus den Momenten berechnen: xs = 4
m10 m bzw. y s = 01 m00 m00
(8.7)
Fur ¨ die praktische Umsetzung im diskreten Bild lassen sich R max und R min dadurch ermitteln, dass beispielsweise 8 Radien, ausgehend vom geometrischen Schwerpunkt, zum Objektrand hin gezeichnet und deren maximale und minimale L¨ange ermittelt werden.
8.1 Geometrische Merkmale
103
Berucksichtigt ¨ man alle Intensit¨atswerte zur Berechnung von Gleichung 8.7, so wird der Massenschwerpunkt bestimmt. Aussagen uber ¨ die Objektform werden erzielt, indem alle Bildpunkte innerhalb des segmentierten Objektes auf Eins gesetzt werden und außerhalb auf Null. In dem Fall ist der ermittelte Schwerpunkt der geometrische Schwerpunkt. Die Zentralmomente µ pq ergeben sich zu:
µ pq =
M
N
∑ ∑ E(x, y)(x − x s ) p ( y − ys )q mit p, q = 0, 1, 2, ...
(8.8)
x=1 y=1
Die Zentralmomente sind gegenuber ¨ den Momenten aus Gleichung 8.6 invariant gegenuber ¨ Verschiebungen im x,y-Koordinatensystem. Momente und Zentralmomente lassen sich ineinander uberf ¨ uhren. ¨ Fur ¨ die Zentralmomente bis zur dritten Ordnung gilt:
µ00 µ10 µ01 µ20 µ02
= = = = =
m00 0 0 m20 − xs m10 m02 − ys m01
µ11 µ30 µ03 µ12 µ21
= = = = =
m11 − ys m10 m30 − 3x s m20 + 2m 10 x2s m03 − 3y s m02 + 2m 01 y2s m12 − 2y s m11 − xs m02 + 2y 2s m10 m21 − 2x s m11 − ys m20 + 2x 2s m01
(8.9)
Normiert man die Zentralmomente η pq gem¨aß der folgenden Vorschrift
η pq =
µ pq γ +1 µ00
mit γ =
p+q 2
(8.10)
so konnen ¨ mach Hu (1962) weitere sieben Momente angegeben werden, die invariant gegenuber ¨ Verschiebungen, Drehungen und Skalierungen sind:
ϕ1 ϕ2 ϕ3 ϕ4 ϕ5
= = = = =
ϕ6
=
ϕ7
=
η20 + η02 (η20 − η02 )2 + 4η211 (η30 − 3η12 )2 + (3η21 + η03 )2 (η30 − η12 )2 + (η21 + η03 )2 (η30 − 3η12 )(η30 + η12 )[(η30 + η12 )2 − 3(η21 + η03 )2 ] +(3η21 − η03 )(η21 + η03 )[3(η30 + η12 )2 − (η21 + η03 )2 ] (η20 − η02 )[(η30 + η12 )2 − (η21 + η03 )2 ] +4η11 (3η30 + η12 )(η21 + η03 ) (3η12 − η30 )(η30 + η12 )[(η30 + η12 )2 − 3(η21 + η03 )2 ] +(3η21 − η03 )(η21 + η03 )[3(η30 + η12 )2 − (η21 + η03 )2 ]
(8.11)
Dadurch erh¨alt man weitere Merkmale, mit denen sich Objekte (bzw. Objektformen) charakterisieren oder auch identifizieren lassen. Weiterfuhrende ¨ Literatur zu dem Thema findet sich beispielsweise in Teague (1980) oder in Hsia (1973).
104
8 Extraktion von Merkmalen
8.2 Densitometrische Merkmale Densitometrische (auch: photometrische) Merkmale gewinnt man aus der Grauwertverteilung eines Bildes oder einzelner vorher segmentierter Objekte. Hierzu werden bzgl. des Bildes oder eines einzelnen Objektes Histogramme (vgl. Kapitel 4) berechnet und daraus die densitometrischen Merkmale abgeleitet. Sollen densitometrische Merkmale bzgl. eines Objektes ermittelt werden, so muss das Objekt vorher segmentiert worden sein. Das Objekt beh¨alt dann die originalen Grauwerte, und der Hintergrund wird auf Null gesetzt (analog zum Vorgehen bei der Berechnung der Momente - s.o.). Fur ¨ die praktische Umsetzung wird ein Maskenbild M( x, y) bestimmt, bei dem der Hintergrund auf Null gesetzt wird. Das zu berechnende Histogramm H M (i ) hat den unteren Grauwert i u = 1 und den oberen Grauwert i o = 255. Dadurch wird sichergestellt, dass der Hintergrund zur Berechnung des Histogramms nicht berucksichtigt ¨ wird. Aus der relativen Histogrammverteilung (vgl. Gleichung 4.3) lassen sich der Mittelwert i, die Streuung σ 2 , die Schiefe M3 und der Exzess M4 ermitteln: Der Mittelwert i: i=
io
∑ ih M (i)
(8.12)
i=i u
Die Streuung σ 2 (entspricht dem zweiten Moment M2 ):
σ2 =
io
∑ (i − i ) 2 h M (i )
(8.13)
i=i u
Schiefe (auch drittes Moment) M3 : M3 =
io
∑ (i − i ) 3 h M (i )
(8.14)
i=i u
Die Schiefe ist ein Maß fur ¨ die Asymmetrie einer Verteilung. Dadurch bestimmt sich die Abweichung der Histogrammverteilung von der Gaußschen Normalverteilung. I.d.R. wird das dimensionslose Maß M3 verwendet, das durch Normierung mit der Streuung wie folgt ermittelt wird: M M3 = √ 3 3 M2
(8.15)
Ist die Verteilung nach links geneigt, spricht man von einer positiven Schiefe. Bei einer nach rechts geneigten Verteilung von negativer Schiefe. Was bedeutet nun beispielsweise eine negative Schiefe? In der Regel kann eine negative
8.3 Texturmerkmale
105
Schiefe vordergrundig ¨ dahingehend gedeutet werden, dass die Grauwerte im Bild im Durchschnitt heller sind als bei einer Normalverteilung. Eine positive Schiefe deutet auf ein dunkleres Bild hin. Exzess (auch viertes Moment) M4 : M4 =
io
∑ (i − i ) 4 h M (i )
(8.16)
i=i u
Der Exzess zeigt die Abweichung der Verteilung von der Gaußschen Normalverteilung nach oben oder unten an. Auch hier wird im Allgemeinen ein di mensionsloses Maß M4 verwendet, das durch Normierung mit der Streuung wie folgt ermittelt wird: M M4 = 42 − 3 (8.17) M2 Da fur ¨ die Normalform das Verh¨altnis
M4 M22
= 3 ist, wird die Konstante 3 sub-
trahiert, um fur ¨ die Normalform den Exzesswert Null zu erzielen.
8.3 Texturmerkmale Die in Kapitel 6 vorgestellten Texturanalyseverfahren basieren vorwiegend auf statistischen Merkmalen. Die Merkmale sind mehr oder weniger gut geeignet, um die Struktur einer Oberfl¨ache zu klassifizieren. Diese einzelnen Merkmale spannen einen Merkmalsraum auf, in dem man mit geeigneten Klassifikationsmechanismen die gemessenen Merkmalsvektoren den jeweiligen Klassen zuordnet. Um ein eing¨angiges Merkmal exemplarisch fur ¨ die Vielzahl der Texturmerkmale heranzuziehen, sei an dieser Stelle auf den Kontrast verwiesen. Der Kontrast ist ein relativ auff¨alliges Bildmerkmal und h¨angt vom Vorkommen und von der Topologie der hellen und dunklen Bildpunkte und von dem Vorkommen sehr heller und sehr dunkler Bildpunkte ab. Eine Methode, den Kontrast K zu bestimmen – im Gegensatz zu dem von Haralick u. a. (1973) vorgeschlagenen Ansatz (vgl. Abschnitt 6.2.2) –, ist die folgende: K=
Emax − Emin Emax + Emin
Dabei sind Emax und Emin die hellen bzw. die dunklen Bildpunkte. Des Weiteren hat auch der Abstand zwischen den hellen und dunklen Bildpunkten Einfluss auf den Kontrast. Das bedeutet, dass der Kontrast von der Ortsfrequenz (auch: Bildpunktperiode) abh¨angt. Um dies zu berucksichtigen, ¨ kann der Kontrast in Abh¨angigkeit der Streuung und des Mittelwertes innerhalb eines k × l großen Texturfensters (also der segmentierte texturierte Bildbereich) W wie folgt bestimmt werden:
106
8 Extraktion von Merkmalen
KW =
2 ( x, y ) σW
i W ( x, y)
(8.18)
2 lassen sich direkt aus dem Bild bzgl. des Der Mittelwert iW und die Streuung σW Fensters W bestimmen:
1 iW ( x, y) = kl bzw.: 2 σW
1 = kl − 1
k 2
l 2
∑ ∑
E( x + i, y + j)
i =− 2k j =− 2l
k 2
l 2
i =− 2k
j =− 2l
∑ ∑
( E( x + i, y + j) − i W ( x, y)) 2
8.4 Farbmerkmale Um zu verstehen, was ein Farbmerkmal ist, mussen ¨ wir uns zun¨achst mit den Begriffen Farblehre, Farbmodell und Farbenkreis auseinander setzen.
8.4.1 Farblehre Rein physikalisch definiert sich Farbe durch die Wellenl¨ange λ oder durch die Beleuchtungsst¨arke. Die intuitivere menschliche Wahrnehmung bestimmt Farbe durch die Parameter Farbton (Hue), Helligkeit (Lightness) und S¨attigung (Saturation). Wir werden im Abschnitt 8.4.2 sehen, dass es Farbmodelle gibt, die sich eher an technischen Gegebenheiten orientieren (auch: physikalisch-technische Farbmodelle), w¨ahrend auf der anderen Seite Farbmodelle existieren, die sich eher an der Wahrnehmung orientieren (auch: wahrnehmungsorientierte Farbmodelle). Zu einer tieferen Durchdringung dieses Themas sei bereits an dieser Stelle beispielsweise auf Fellner (1992) und/oder Foley u. a. (1993) verwiesen. Zun¨achst wollen wir uns kurz ein paar Daten bzgl. Farbe ansehen. Das sichtbare Licht hat eine Wellenl¨ange von ca. 780 nm bis 380 nm. Diesen Bereich decken die so genannten Spektralfarben ab. Die Spektralfarben (auch: Regenbogenfarben) sind im einzelnen Rot, Orange, Gelb, Grun, ¨ Blau, Indigo und Violett. Durch ein Prisma wird weißes Licht in diese Spektralfraben zerlegt. Das menschliche Auge kann rund 50 000 bis 350 000 unterschiedliche Farbtone ¨ unterscheiden Schmidt (1980). Darunter befinden sich auch so genannte Korperfarben, ¨ die durch Reflexion des Lichts an Oberfl¨achen, die nicht selbst leuchten, entstehen. Deswegen kann eine Farbe respektive ein Farbton nicht unbedingt als Frequenz aufgefasst werden. Farben sind also mehr oder weniger Sinneseindrucke, ¨ die durch Reflexion entstehen. Die Farbempfindung ist subjektiv, und in der Regel wird das visuelle System bei der Wahrnehmung mit berucksichtigt. ¨ Dadurch werden die bereits
8.4 Farbmerkmale
107
oben als intuitiv bezeichneten Begriffe Farbton, Helligkeit und S¨attigung auch als wahrnehmungsorientierte Farbbegriffe bezeichnet. Dabei ist der Farbton die Eigenschaft, mit der sich bunte Farben (Rot, Grun, ¨ Blau,...) von unbunten Farben (Weiß, Schwarz, Grau,...) unterscheiden lassen. Die Helligkeit kann als Intensit¨atseigenschaft betrachtet werden und ist somit ein Maß fur ¨ die Intensit¨at der Farbe. Die S¨attigung charakterisiert die Eigenschaft der Farbreinheit. Sie gibt an, wie rein oder wie ausgewaschen ein Farbton ist. Bei einer relativ ausgewaschenen Farbe sind mehrere Wellenl¨angen im Spiel. Und je reiner die Farbe, desto enger ist der verwendete Wellenl¨angenbereich. Weitere Begrifflichkeiten sind das trichromatische und das achromatische Modell. Bei dem trichromatischen Modell geht man davon aus, dass bei der quantitativen Bestimmung der Farben sich jede Farbe aus bestimmten Anteilen von drei Grundfarben zusammensetzt. Das achromatische Modell betrachtet die einzelnen Grautone ¨ von Schwarz bis Weiß. 1
G rü n
0 ,5
C y a n
G e lb W e iß
0 0
B la u
M a g e n ta 0 ,5
1
R o t
Abbildung 8.1: Schematisches 2D Farbmischungsdiagramm mit den Grundfarben Rot, Grun ¨ und Blau (R+G+B=1)
Die Farbmischung geht letztendlich auf das trichromatische Modell zuruck. ¨ Hier unterscheidet man zwischen additiver und subtraktiver Farbmischung. Additive ¨ Farbmischung bedeutete in diesem Zusammenhang, dass durch Uberlagerung von Farbreizen, die je eine Grundfarbe repr¨asentieren, eine neue Farbe entsteht. Der Großteil der in der Natur vorkommenden Farben l¨asst sich so zusammensetzen. Ein weiteres Beispiel einer additiven Farbmischung ist ein herkommlicher ¨ Fernseher oder ein PC-Monitor, bei denen drei Elektronenstrahlen – je einer fur ¨ Rot, Grun ¨ und Blau – uberlagert ¨ werden und so das Fernsehbild entsteht. Addiert man alle drei Grundfarben mit maximaler St¨arke und zu gleichen Anteilen, so ergibt sich Weiß. Bei der subtraktiven Farbmischung bedient man sich in der Regel der Farben Cyan, Magenta und Gelb. Hier kann man sich die Farbmischung als drei Filter vorstellen, die das weiße Licht selektiv durchlassen. Wird das weiße Licht ganz und gar durch alle drei Filter durchgelassen, so entsteht Schwarz. Normiert man die Werte der drei Grundfarben Rot, Grun ¨ und Blau so, dass R + B + G = 1 gilt, kann das in Abbildung 8.1 dargestellte Diagramm be-
108
8 Extraktion von Merkmalen
schrieben werden. Anfang der 70er Jahre wurde durch die CIE (Commission Internationale de l’Eclairage) ein Standard festgelegt, der ein Modell zur Verfugung ¨ stellt, in dem jede Farbe durch eine gewichtete Summe von drei kunstlichen ¨ Grundfarben — den Normfarbwerten X, Y und Z — dargestellt werden kann (vgl. CIE (1971)). Durch ihre entsprechenden Energieverteilungskurven werden die Normfarbwerte charakterisiert (Schultze (1975)). Seien X, Y und Z die Anteile von beliebigen CIE-Grundfarben. So werden gem¨aß der folgenden Transformationen x=
X Y Z ,y= und z = X+Y+Z X+Y+Z X+Y+Z
die Farbkomponenten oder auch die Position dieser Farbe in der zweidimensionalen CIE-Farbtafel (vgl. Abbildung 8.2) bestimmt. 1 .0 0 .9
5 2 0 n m
0 .8 0 .7
5 5 0 n m
0 .6 0 .5
5 0 0 n m
0 .4 D
0 .3 0 .2
4 7 0 n m
0 .1
7 8 0 n m
6 5
P u rp u rlin ie 3 8 0 n m
0 .1
0 .9 0 .6 0 .7 0 .8 0 .2 0 .4 0 .3 0 .5 Abbildung 8.2: CIE-Farbdiagramm
x 1 .0
Fur ¨ z gilt: z = 1 − ( x + y), sodass nur zwei Koeffizienten fur ¨ die Bestimmung des Farbwertes notwendig sind. Gem¨aß der Normfarbtafel in Abbildung 8.2 die Wellenl¨angen der Spektralfarben Rot 700,0 nm, Grun ¨ 546,1 nm und Blau 435,8 nm. Die reinen Spektralfarben liegen auf der gekrummten ¨ Kurve. Farben direkt auf dieser Kurve haben die volle S¨attigung, die zur Mitte hin abnimmt. Mischfarben liegen innerhalb der Kurve. Der Punkt D65 entspricht dem in Europa verwendeten Normweiß. Zur Veranschaulichung sind ein paar Kreise und die entsprechenden
8.4 Farbmerkmale
109
Wellenl¨angen eingezeichnet.5
8.4.2 Farbmodelle Wie bereits erw¨ahnt, unterscheiden wir zwischen physikalisch-technischen und wahrnehmungsorientierten Farbmodellen. Zun¨achst sollen das wohl bekannteste Farbmodell RGB- und das CMY-Modell aus der Sparte physikalisch-technisch“ ” vorgestellt werden. Anschließend werden wir uns den wahrnehmungsorientierten Modellen zuwenden und das HSV- und HLS-Modell behandeln. RGB-Modell Das R(ot)G(run)B(lau)-Modell ¨ ist wohl am weitesten verbreitet und dementsprechend eines der bekanntesten Farbmodelle. Meistens kommt es nur intern zur Anwendung und ist deswegen fur ¨ den Benutzer nicht unbedingt sichtbar. Beispielsweise ist die Phosphorschicht bei einem herkommlichen ¨ Fernsehger¨at aus Tripeln von roten, grunen ¨ und blauen Phosphorpunkten aufgebaut. Hier bietet sich die Verwendung des RGB-Modells nahezu an.6 G g rü n ( 0 ,1 ,0 )
g e lb ( 1 ,1 ,0 )
c y a n ( 0 ,1 ,1 ) sc h w a rz ( 0 ,0 ,0 ) b la u ( 0 ,0 ,1 ) B
w e iß ( 0 ,0 ,0 ) ro t ( 1 ,0 ,0 ) R
m a g e n ta ( 1 ,0 ,1 )
Abbildung 8.3: RGB-Modell
Das RGB-Modell ist ein so genanntes additives Farbmodell. Hierbei werden durch Addition von Grundfarben neue Farben generiert. Ausgehend von den einzelnen ¨ Phosphorpunkten werden hier ebenfalls durch Uberlagerung Farben erzeugt. Eine ubliche ¨ grafische Darstellung des RGB-Modells ist der Einheitswurfel, ¨ bei dem die drei Achsen die drei Grundfarben darstellen (vgl. Abbildung 8.3). Jede Farbe innerhalb des Wurfels ¨ kann durch ihre Koordinaten – entsprechend dem Anteil 5 Diese Grafik ist nur nachgezeichnet, so dass beispielsweise die gekrummte ¨ Linie nicht exakt auf den berechenbaren Wellenl¨angen liegt. Sie soll nur das Prinzip des CIE-Farbdiagramms verdeutlichen 6 Interne Verwendung meint in diesem Zusammenhang, dass das im Ger¨ at verwendete Grafiksystem intern auf das RGB-Modell abbildet, extern dem Benutzer evtl. ein anderes Modell anbietet.
110
8 Extraktion von Merkmalen
der jeweiligen Grundfarbe – angegeben werden. Die Farbe Gelb ergibt sich als Summe von Rot und Grun: ¨ ((1, 1, 0) = (1, 0, 0) + (0, 1, 0)). Zieht man zwischen zwei beliebigen Farben (Positionen im Einheitswurfel) ¨ innerhalb des Wurfels ¨ eine Gerade und unterteilt diese in n + 1 gleich lange Teile, so kann ein quasi kontinu¨ ierlicher Ubergang von einer Farbe zur anderen in n Schritten realisiert werden. Die Ausgangs- und die Endfarbe befinden sich jeweils auf den Endpunkten der Geraden. CMY-Modell M m a g e n ta ( 0 ,1 ,0 )
b la u ( 1 ,1 ,0 )
ro t ( 0 ,1 ,1 ) w e iß ( 0 ,0 ,0 ) g e lb ( 0 ,0 ,1 )
sc h w a rz ( 0 ,0 ,0 ) c y a n ( 1 ,0 ,0 ) C
g rü n ( 1 ,0 ,1 )
Abbildung 8.4: CMY-Modell
Das C(yan)M(agenta)Y(ellow)-Modell wird vorwiegend in Systemen verwendet, die eine so genannte permanente Ausgabe der Farbinformation aufweisen, wie Farbdrucker. Hier eignen sich keine additiven Farbsysteme, da dass menschlichen Auge nur jene Anteile des Lichts wahrnimmt, die von der Oberfl¨ache (z.B. weißes Druckerpapier) reflektiert werden. Hierzu werden eher die sog. subtraktiven Farbmodelle verwendet. Analog zum RGB-Modell kann auch das CMY-Modell grafisch mit Hilfe des Einheitswurfels ¨ dargestellt werden (vgl. Abbildung 8.6). Der Unterschied besteht lediglich in der Bezeichnung der Eckpunkte. Schwarz liegt im Gegensatz zum RGB-Modell an dem Punkt (1, 1, 1). Dies bedeutet, dass ¨ durch eine vollst¨andige maximale Uberlagerung der drei Grundfarben Cyan, Magenta und Yellow ein (oder auch mehrere) schwarze Punkte erzeugt werden. Weiß befindet sich im Einheitswurfel ¨ an dem Punkt (0, 0, 0). Anhand eines weißen Druckerpapiers kann man sich die Notwendigkeit sehr leicht erkl¨aren, dass sich Weiß an dieser Koordinate im CMY-Modell befindet. Bei einem Farbdrucker wird ein weißer Punkt dadurch erzeugt, dass keine Farbe gedruckt wird. Das korrespondiert mit dem CMY-Modell. Eine Umrechnung von RGB nach CMY kann in Vektorschreibweise mittels der
8.4 Farbmerkmale
111
Subtraktion wie folgt geschehen: S C C W R R G = S − M bzw. M = W − G S Y Y W B B
(8.19)
Die Vektoren (W,W,W) im RGB-Modell und (S,S,S) im CMY-Modell sind gleich (1,1,1). HSV-Modell
V 1 2 0 ° g rü n
1 8 0 ° c y a n
V = 1 w e iß
2 4 0 ° b la u V = 0 sc h w a rz
6 0 ° g e lb 0 ° ro t
H
3 0 0 ° m a g e n ta
H - F a rb w in k e l S - S ä ttig u n g
Abbildung 8.5: HSV-Modell
Die beiden oben angesprochenen Farbmodelle orientieren sich stark an den technischen Gegebenheiten. Das HSV- und auch das folgende HLS-Farbmodell sind eher an intuitiven Methoden angelehnt, wie sie beispielsweise von Malern bevorzugt werden. Beim HSV-Modell wird ein Farbton nicht durch die Anteile dreier Grundfarben bestimmt, sondern durch die Angabe von Farbton (Hue), Farbs¨attigung (Saturation) und Helligkeit (Value). Wird der RGB-Einheitswurfel ¨ entlang der Diagonalen (1,1,1) und (0,0,0) auf eine Ebene projiziert, so erh¨alt man ein Sechseck. Dieses Sechseck bildet die Basis der sog. HSV-Pyramide. Die Farbe wird als Winkel innerhalb des Sechsecks angegeben. Bei 0 o liegt Rot. Eine Komplement¨arfarbe befindet sich immer gegenuber, ¨ d.h. um 180 o gedreht. Der Parameter S(¨attigung) variiert im Bereich von 0 bis 1. Er deutet das Verh¨altnis der Reinheit der Farbe zu ihrer maximalen Reinheit an. Die maximale Reinheit kann in Abh¨angigkeit der gew¨ahlten Helligkeit nur in einem Punkt auf den Pyramidenseiten erreicht werden. Eine Selektion der Farbe kann zun¨achst so erfolgen, dass eine reine Farbe durch ihren Winkel (H = α , V = S = 1) spezifiziert wird. Anschließend wurden ¨ dann Weiß oder Schwarz hinzugefugt ¨ werden. Hinzufugen ¨ von Weiß wurde ¨ durch eine Reduktion von S bei konstantem V erfolgen. Eine Reduktion von V bei konstantem S w¨are ein Hinzufugen ¨ von Schwarz.
112
8 Extraktion von Merkmalen
HLS-Modell Basierend auf Ostwald (1931) hat die Firma Tektronix das HLS-Modell eingefuhrt. ¨ Hierbei stehen die Parameter H fur ¨ Hue, den Farbwert, L fur ¨ Lightness, die Helligkeit, und S fur ¨ Saturation, die S¨attigung der Farbe. L = 1 w e iß
1 2 0 ° ro t
6 0 ° m a g e n ta
1 8 0 ° g e lb
0 ° b la u
L = 0 ,5
2 4 0 ° g rü n
3 0 0 ° c y a n
L = 0 H
H - F a rb w in k e l S - S ä ttig u n g
Abbildung 8.6: HLS-Modell
Es ist analog zu dem HSV-Modell ein eher intuitives Farbmodell, bei dem die Parameter H und S den Parametern H und S im HSV-Modell entsprechen. S = 1 entspricht der maximalen S¨attigung, und fur ¨ S = 0 erh¨alt man die Grauwertskala. Der Parameter L entspricht ungef¨ahr dem Parameter V des HSV-Modells. Allerdings wurde hier durch eine Art des Spiegelns an der runden Fl¨ache ein Doppelkegel nach oben erzeugt. Die Werte L = 0 und L = 1 beschreiben die Farben Schwarz bzw. Weiß. Die Farben mit maximaler S¨attigung liegen auf der Ebene, die bei L = 0.5 aufgespannt wird.
8.4.3 Color Naming System Die beiden letztgenannten Farbmodelle (HSV und HLS) geben den Farbwert durch einen Winkel im Farbenkreis an. Die Farbenkreise der beiden Modelle sind zueinander um 60 o gedreht, aber die Reihenfolge der Farben ist gleich. Um nun die Benutzerfreundlichkeit und eine einheitliche Benennung der Farben zu ermoglichen, ¨ wurde von Berk u. a. (1982) das CNS – Color Naming System vorgeschlagen. Dieses System erlaubt es dem Benutzer, in englischer Sprache die ge-
8.5 Zusammenfassung
113
Tabelle 8.1: Begrifflichkeiten, die im Rahmen des CNS verwendet werden k¨onnen.
Werte Werte Werte Werte Werte Werte
Helligkeit sehr dunkel (very dark) dunkel (dark) mittel (medium) hell (light) sehr hell (very light)
Parameter S¨attigung Farbwert gr¨aulich (grayish) Blau (blue) stark (strong) Violett (purple) lebendig (vivid)
Werte
Rot (red) Orange (orange) Braun (brown) Gelb (yellow) Grun ¨ (green)
Grauwert Schwarz (black) sehr dunkles Grau (very dark gray) Dunkelgrau (dark gray) Grau (gray) Hellgrau (light gray) sehr helles Grau (very light gray) Weiß (white)
suchte Farbe zu beschreiben. Die verwendeten Parameter zur Beschreibung sind analog zum HSV- bzw. HLS-Modell Farbe, S¨attigung und Reinheit. Diese drei Parameter werden durch umgangssprachliche Begriffe dargestellt. Dadurch kann sich der Name einer Farbe einfach oder komplex zusammensetzen. Ein Beispiel fur ¨ einen zusammengesetzten Ausdruck: ein sehr dunkles, gem¨aßigtes Violett. In der Tabelle 8.1 sind die Begrifflichkeiten (Werte) fur ¨ die Helligkeit, die S¨attigung und fur ¨ den Farbwert (auch Grauwert), die zur Verfugung ¨ stehen, aufgelistet. Die chromatische Skala ist in der Regel mit sieben Werten nicht ausreichend abgedeckt. Aus diesem Grund sieht das CNS noch halbe und viertel Farbtone ¨ vor, die durch zus¨atzliche Namensgebung sprachlich dargestellt werden. Halbe Farbtone ¨ werden durch zusammengesetzte Farben wie Gelbgrun ¨ dargestellt, und dazwischen liegende viertel Farbtone ¨ erhalten das Suffix lich“. Dadurch entstehen lei” der auch Kunstworter ¨ wie orangelich“. In Abbildung 8.7 (n¨achste Seite) wird das ” CNS auf den HLS-Farbenkreis angewendet und das eben Beschriebene grafisch dargestellt.
8.5 Zusammenfassung In diesem Kapitel wurden eine Reihe unterschiedlicher Merkmale vorgestellt. Die Merkmale konnen ¨ in geometrische, densitometrische, statistische, Textur-basierte und Farb-basierte Merkmale unterteilt werden. Allgemein l¨asst sich sagen, dass je nach Anwendung und dem damit jeweils verfolgten Ziel sich einige Merkmale eignen und andere nicht. Ebenso h¨angen die quasi moglichen ¨ Merkmale vom bildgebenden Verfahren ab. Hier kann die maximal erreichbare Auflosung ¨ die Berechnung von Texturmerkmalen einschr¨anken. Ist die Auflosung ¨ zu gering, konnen ¨ Texturmerkmale nicht sinnvoll ermittelt werden, da aufgrund der Diskretisierung/Quantisierung Detailinformationen, die fur ¨ eine signifikante Texturmerkmalsextraktion notwendig sind, nicht zur Verfugung ¨ stehen. Da im Prinzip fur ¨ jede praktische Anwendung digitaler Bildverarbeitung, die am Ende etwas klassifiziert, Merkmale verschiedenster Natur extrahiert werden, ist eine Nennung von beispielhaften Anwendungen mußig. ¨ Eine einzige aktuelle Anwendung soll dennoch genannt sein: die Ermittlung von biometrischen Merkma-
114
8 Extraktion von Merkmalen
v io le ttlic h -ro t ro t o ra n g e lic h -ro t ro t-o ra n g e rö tlic h -o ra n g e 1 2 0 ° o ra n g e g e lb lic h -o ra n g e o ra n g e -g e lb o ra n g e lic h -g e lb g e lb
ro t-v io le tt
rö tlic h -v io le tt v io le tt b lä u lic h -v io le tt 6 0 °
b la u -v io le tt
1 5 0 °
v io le ttlic h -b la u 0 °
1 8 0 °
b la u
g rü n lic h -g e lb g e lb -g rü n
g rü n lic h -b la u
2 4 0 °
g e lb lic h -g rü n g rü n b lä u lic h -g rü n
b la u -g rü n
Abbildung 8.7: CNS-Farbnamen auf HLS-Farbenkreis. Die Gradzahlen sind nicht exakt eingezeichnet. Sie sollen lediglich das Prinzip des CNS verdeutlichen (vgl. auch Fellner (1992))
len. Hierbei werden u.a. bestimmte Kanten- und Linienmerkmale beispielsweise zur Analyse von Fingerabdrucken ¨ verwendet (Optel.com (2004)). ¨ Die korrespondierenden Ubungsaufgaben finden Sie in Anhang C.9.
Kapitel 9
Klassifikation Die Klassifikation ist der Schritt von den Merkmalen zu den Objekten. Das bedeutet, dass die Aufgabe der Klassifikation darin besteht, Objekte (eines Bildes) in Klassen einzuordnen. Dabei werden gleichzeitig die Objekte durch die Zuordnung zu den (Objekt-)Klassen als solche – n¨amlich Objekte – erkannt. Die Zuordnung erfolgt anhand der zu den Objekten berechneten Merkmale. Die Objekte mussen ¨ vorher segmentiert werden, um Merkmale zu den bzw. aus den Objekten berechnen zu konnen. ¨ In Abbildung 1.1 ist das Paradigma der Mustererkennung schematisch dargestellt, und der in dem Schema dargestellte Schritt vom Merkmalsvektor zu den Klassen ist der Gegenstand dieses Kapitels. Die im Kapitel 8 beschriebene Merkmalsextraktion stellt die Merkmale zur Klassifikation bereit. Je nach Aufgabe und Einfallsreichtum stehen m Merkmale zur Verfugung. ¨ Allerdings ist in der Regel nicht jedes extrahierte Merkmal gleich aussagekr¨aftig. Das bedeutet, dass ein oder mehrere Merkmale eher geeignet sind als andere, Objekte voneinander zu unterscheiden.1 Aufgrund einer Signifikanzanalyse wird ein m dimensionaler Merkmalsvektor in der Regel auf einen n dimensionalen Merkmalsvektor beschr¨ankt, mit n < m. Der n dimensionale Merkmalsvektor beschreibt die Lage eines Objektes im n dimensionalen Merkmals¨ raum. Ahnliche Objekte haben a¨ hnliche Merkmalsvektoren und bilden im Allgemeinen n dimensionale Wolken (engl. cluster) im zugehorigen ¨ Merkmalsraum. Eine Aufgabe der Klassifikation besteht nun darin, die Cluster als solche zu identifizieren und von anderen Clustern zu trennen. Die andere wesentliche Aufgabe der Klassifikation ist die bereits genannte, n¨amlich neue gemessene Vektoren den Clustern zuzuordnen. Die Trennung der Cluster untereinander erfolgt durch sog. Trennfunktionen oder auch Diskriminantenfunktionen. Man unterscheidet je nach Komplexit¨at des zu losenden ¨ Problems und der dadurch resultierenden Dimensionalit¨at des Merkmalraums lineare (auch stuckweise ¨ lineare), quadratische 1
Man spricht in diesem Zusammenhang auch von der Signifikanz von Merkmalen.
116
9 Klassifikation
¨ oder Funktionen hoheren ¨ Grades.2 Einen sehr ausfuhrlichen ¨ Uberblick uber ¨ Klassifikationsverfahren insbesondere zur Szenenanalyse finden Sie in Duda und Hart (1973) oder auch in Niemann (1983). Um eine Trennfunktion zu bestimmen, wird eine so genannte Lernphase durchgefuhrt. ¨ Im Rahmen dieser Lernphase wird der Klassifikator trainiert. Dabei lernt der Klassifikator, anhand der (signifikanten) Merkmale die Objekte zu unterscheiden und den Klassen (Clustern) zuzuordnen. Man unterscheidet beim Lernen prinzipiell drei unterschiedliche Lernarten (Zell, 1994): 3 Unuberwachtes ¨ Lernen (unsupervised learning, self-organized learning): Beim unuberwachten ¨ Lernen organisiert sich der Klassifikator selbst. Das bedeutet, dass aus der Merkmalsverteilung im n dimensionalen Raum Clusterzentren (Prototypen) automatisch ermittelt und Vektoren zu Clustern zusammengefasst werden. ¨ Uberwachtes Lernen (supervised learning): Beim uberwachten ¨ Lernen wird dem Klassifikator durch einen externen Lehrer“ die Klassifikationsabbildung bei” gebracht. In dieser Trainingsphase wird die Zuordnung von Merkmalsvektor zur Klasse sozusagen per Hand“ vollzogen. ” Best¨arkendes Lernen (reinforement learning): Das best¨arkende Lernen tritt vorwiegend im Kontext der kunstlichen ¨ Neuronalen Netze auf. Hierbei gibt der Lehrer nur an, ob die Abbildung richtig oder falsch war. Bei einer richtigen Abbildung wird die Gewichtung verst¨arkt. Hier wird also nicht die erwunsch¨ te Ausgabe vorgegeben, sondern nur bewertet, ob die Ausgabe richtig oder falsch war. Nicht nur die Lernverfahren sind unterschiedlich. Auch die Klassifikationsverfahren lassen sich in verschiedene Ans¨atze unterteilen (Abmayr, 1994): Zun¨achst gibt es den großen Bereich der so genannten wissensbasierten Systeme, die dem Gebiet der kunstlichen ¨ Intelligenz (KI) entstammen. Sie kommen immer dann zum Einsatz, wenn es keine Losungen ¨ im klassischen Sinne gibt. D.h., dass keine Losungen ¨ in Form von Theorien und Modellen existieren und man gezwungen ist, auf heuristische Methoden/Wissen zuruckzugreifen. ¨ Hierfur ¨ wird das Wissen eines oder mehrerer Experten in formaler und strukturierter Form in das System ubertragen. ¨ Oftmals wird durch Regeln das Wissen dann weiterverarbeitet und dadurch auch neues Wissen generiert, sodass auch in diesem Fall ein gewisser Lerneffekt erzielbar ist. Durch Anwendung der Regel respektive des Wissens kann dann klassifiziert werden (Gorz, ¨ 1995; Rich, 1988). 2 Bei sehr komplexen Trennfunktionen spricht man dann auch von so genannten Trenn- oder TrennHyper-Fl¨achen. 3 Diese Lernarten werden in dieser Literatur bzgl. (kunstlich) ¨ neuronaler Netze beschrieben. Es ist aber leicht einzusehen, dass die Arten des Lernens – mit Einschr¨ankungen – auch auf numerische Klassifikationsverfahren angewendet werden konnen. ¨
9.1 Auswahl von (signifikanten) Merkmalen
117
Die kunstlichen ¨ Neuronalen Netze (kNN) sind das Forschungsgebiet des Konnektionismus. KNN werden in Analogie zu biologischen Vorbildern entwickelt. Sie bestehen aus einer Vielzahl einfacher Schaltelemente (Neuronen) und aus Verbindungen (Axone, Synapsen, Dendriten) oder auch Kopplungen untereinander. Man unterscheidet eine Vielzahl von Typen von kNN. Die Art oder der Typ wird im Wesentlichen durch die sog. Topologie des Netzes bestimmt. Die kNN zeichnen sich durch eine massive Parallelverarbeitung und insbesondere durch ihre Lernf¨ahigkeit aus. KNN werden zunehmend als Klassifikatoren eingesetzt. In Dorffner (1991); Rojas (1993) und/oder in Zell (1994) ¨ l¨asst sich jeweils ein guter Uberblick uber ¨ das Thema finden. Unter numerischer Klassifikation wollen wir die klassischen Klassifikationsverfahren der Mustererkennung4 verstehen. Diese Verfahren verwenden im Allgemeinen geometrische Abstandsmaße (Distanzfunktionen), Trennfunktionen (Diskriminantenfunktionen) oder auch statistische Entscheidungstheorien, d.h. Klassifikation mittels Wahrscheinlichkeiten – z.B. Bayes’sche Entschei¨ dungstheorie. Ein vertiefender Uberblick kann durch die Lekture ¨ von Duda und Hart (1973); Duda u. a. (2001) oder Niemann (1983) erlangt werden. ¨ Wir wollen uns im Folgenden einen groben Uberblick uber ¨ ausgew¨ahlte Klassifikationsverfahren verschaffen. Zun¨achst soll aber das Thema der Merkmalsauswahl beleuchtet werden, da die Auswahl von geeigneten Merkmalen einen nicht unerheblichen Einfluss auf die Klassifikation und somit auf die Gute ¨ des Klassifikationsergebnisses hat.
9.1 Auswahl von (signifikanten) Merkmalen Die Auswahl von sinnvollerweise signifikanten Merkmalen ist ein wesentlicher Schritt im Rahmen der Klassifikation. Beispielsweise konnen ¨ durch Heuristiken5 sehr einfach große Merkmalsmengen erzeugt werden. Durch eine Merkmalsauswahl wird in der Regel die Dimensionalit¨at des Merkmalsraumes reduziert. Das ist gleichbedeutend mit einer Reduzierung der Komplexit¨at. Das ist insbesondere dann notwendig, wenn das gew¨ahlte Klassifikationsverfahren nur mit einer geringen Anzahl an Merkmalen performant – sprich: mit vertretbarem Rechenaufwand – arbeitet. Es wird also versucht, aus m Merkmalen eine Untermenge von n signifikanten Merkmalen auszuw¨ahlen, sodass der Klassifikationsfehler (bei Reklassifikation6 ) sehr gering ist. Nach Niemann (1983) gibt es bei insgesamt 300 Merkmalen, wobei nur 30 Merkmale zur Klassifikation zugelassen sind, ca. 1.7 · 10 41 4
Das Paradigma der Mustererkennung ist in Kapitel 1 auf Seite 2f schematisch erl¨autert. Heuristik: Strategie, die oft auf Vermutungen und/oder Hypothesen aufbaut. Eine Heuristik soll mit hoherer ¨ Wahrscheinlichkeit – allerdings ohne Garantie – ein schnelleres Auffinden einer Losung ¨ ermoglichen. ¨ 6 Reklassifikation meint hier, dass die zum Training verwendeten Merkmale respektive Merkmalsvektoren auch klassifiziert werden. 5
118
9 Klassifikation
Untermengen. Dadurch wird deutlich, dass es sehr schwierig sein kann, die Untermenge an Merkmalen zu bestimmen, die fur ¨ die zu losende ¨ Klassifikationsaufgabe optimal ist. Optimal meint in diesem Zusammenhang, dass zum einen die Merkmale signifikant sind, und zum anderen, dass der Klassifikationsfehler fur ¨ diese Untermenge minimal ist. Um nun signifikante Merkmale zu bestimmen, wird in der Regel eine so genannte Signifikanzanalyse durchgefuhrt ¨ (vgl. auch Niemann (1983)). Des Weiteren konnen ¨ zur besseren Unterscheidung der Gute ¨ von Merkmalen Transformationen durchgefuhrt ¨ werden. Hierdurch werden wichtige von unwichtigen Merkmalen getrennt. Im Folgenden sollen einige einfache Gutekriterien ¨ fur ¨ Merkmale vorgestellt werden.
9.2 Gutekriterien ¨ Unter der Voraussetzung, dass die n Merkmale voneinander statistisch unabh¨angig sind, kann eine Maßzahl zur Bewertung der Merkmalsgute ¨ auf relativ einfache Weise angegeben bzw. bestimmt werden. Jedes der n Merkmale kann dann fur ¨ sich, also ohne Berucksichtigung ¨ der anderen n − 1 Merkmale, bzgl. des Gutekriteriums ¨ bewertet werden. Aus diesen n Merkmalen lassen sich dann mittels eben dieses Gutekriteriums ¨ die m signifikanten Merkmale bestimmen.
K K
2
m
1
1
m 2
m t
Abbildung 9.1: Beispiel fur ¨ eine mogliche ¨ Merkmalsverteilung (fur ¨ zwei Klassen K 1 und ¨ Merkmal m t erlaubt K2 ), die eine eindeutige Trennung der Klassen fur
Zwei einfache Gutekriterien ¨ sind der Mittelwert und die Streuung. Hierbei ist es sehr intuitiv, dass ein Merkmal mit relativ großem Abstand zwischen den Mittelwerten und einer geringen Streuung (um die Mittelwerte) sich gut eignet, Klassen voneinander zu trennen. Betrachtet man zwei Klassen K1 und K2 und das Merkmal mt mit dem klassenbedingten Mittelwert µkt und der klassenbedingten Streuung σkt , die bekannt sind. Ein Gutemaß ¨ qt kann wie folgt definiert werden:
9.2 Gutekriterien ¨
119
qt =
(µ1t − µ2t )2 2 + σ2 σ1t 2t
(9.1)
mit µ als Mittelwert und der Streuung σ 2 : 1 µ= n
∑ xi
bzw. σ =
i
2
∑( x i − µ )2 i
(9.2)
n−1
In Abbildung 9.1 ist ein Beispiel fur ¨ zwei Klassen K1 und K2 und ein Merkmal m t dargestellt. Die beiden Klassen lassen sich eindeutig voneinander trennen, da die Verteilungen bzgl. des Merkmals eine nicht zu große Streuung und einen hinreichend großen Abstand zwischen den zugehorigen ¨ Mittelwerten µ1 bzw. µ2 aufweisen. In Abbildung 9.2 ist eine entsprechende Verteilung dargestellt, fur ¨ die es nahezu unmoglich ¨ ist, mit Hilfe von Mittelwert und Streuungen eine Trennung zu realisieren. Mit anderen Worten: Bei Verteilungsdichtefunktionen, die von der Normalverteilung (Gauß-Glocken-Kurve) extrem stark abweichen, eignet sich die Berechnung eines Gutemaßes ¨ gem¨aß Gleichung 9.1, das letztendlich nichts anderes ist als eine Berechnung des Abstandes, nicht.
K K
2
m
1
1
m
m 2
t
Abbildung 9.2: Beispiel fur ¨ eine mogliche ¨ Merkmalsverteilung (fur ¨ zwei Klassen K 1 und ¨ Merkmal m t erlaubt K2 ), die keine eindeutige Trennung der Klassen fur
Es ist vielmehr sinnvoller, die Verteilungsdichte selbst fur ¨ ein Gutemaß ¨ heranzuziehen. Ein entsprechendes Maß ist der mittlere quadratische Abstand: MQD =
+ ∞
[h{m t |K1 } − h{m t |K2 }]2 dm t ,
(9.3)
m t =−∞
mit h{mt |Kk } als bedingte Wahrscheinlichkeitsdichteverteilung des t-ten Merkmales und der Klasse Kk und mit 0 ≤ MQD ≤ ∞. Dieses Abstandsmaß betrachtet
120
9 Klassifikation
jeweils Paare von Klassen. In Niemann (1983) lassen sich weitere Abstandsmaße, mit den Eigenschaften, dass sie Paare von Klassen betrachten, finden. Die so genannte Ambiguity-Funktion (vgl. Abmayr (1994)) berechnet ein Maß, das die Trennkraft7 eines Merkmales beschreibt. Die Funktion AMB ist ein Informationsmaß und berechnet sich zu: a
b
= − ∑ ∑ p(m j )
AMB
j=1 i=1
p { Ki | m j } logb p{Ki |m j }
(9.4)
mit a als Anzahl der Intervalle, in die ein Merkmal eingeteilt werden kann, und b ¨ eine Beobachtung als die Anzahl der Klassen. p(m j ) ist die Wahrscheinlichkeit fur (neues Ereignis), die im Intervall j liegt. p{Ki |m j } als die bedingte Wahrscheinlichkeit dafur, ¨ dass die Klasse Ki vorliegt unter der Beobachtung des Wertes m j . Das bedeutet fur ¨ den Fall mit zwei Klassen und somit b = 2, dass die AmbiguityFunktion wie folgt aussieht: AMB = −
a
2
∑ ∑ p(m j) p{Ki |m j }ld · p{Ki |m j }.
(9.5)
j=1 i=1
Die Ambiguity-Funktion kann Werte zwischen 0 und 1 annehmen. Nimmt sie einen Wert nahe oder gleich 0 an, dann bedeutet dies, dass eine gute bis optimale Trennung8 moglich ¨ ist. Entsprechend gilt bei einem Wert von 1 oder nahe 1, dass eine Trennung kaum moglich ¨ ist. Eine weitere Voraussetzung ist, dass fur ¨ beide Gruppen die Stichproben gleich groß sein mussen. ¨ Nachdem wir uns grunds¨atzliche Gedanken zur Merkmalsauswahl gemacht haben, werden im Folgenden die eigentlichen Klassifikationsans¨atze kurz dargestellt.
9.3 Klassifikation von Objekten Prinzipiell konnen ¨ fur ¨ die Klassifikation von Objekten (gemessenen Ereignissen) folgende Arten von sogenannten Klassifikatoren betrachtet werden. Man unterscheidet9 Klassifikatoren, die auf wahrscheinlichkeitstheoretischen Ans¨atzen basieren (der wohl am besten untersuchte ist die Klassifikation mittels der Bayes’schen Entscheidungstheorie). Des Weiteren konnen ¨ Klassen und somit zu 7
Trennkraft meint hier die prinzipielle Eigenschaft zur Trennung von Klassen eines Merkmales, anhand dessen Ereignisse voneinander unterschieden werden konnen. ¨ Intuitiv ist dabei, dass in der Regel signifikante Merkmale eine st¨arkere Trennkraft besitzen als nicht signifikante Merkmale. 8 Also keine Ambiguit¨ at. 9 ¨ Dieser Uberblick erhebt keinesfalls den Anspruch auf Vollst¨andigkeit!
9.3 Klassifikation von Objekten
121
klassifizierende Ereignisse durch so genannte Diskriminantenfunktionen unterschieden werden. Ebenso konnen ¨ Abstandsmaße zur Klassifikation herangezogen werden. Im Folgenden werden die drei Ans¨atze kurz erl¨autert sowie jeweils zugehorige ¨ Klassifikatoren kurz vorgestellt. Fur ¨ einen ausfuhrlicheren ¨ Einstieg in das Thema Klassifikation sei an dieser Stelle auf Niemann (1983); Duda und Hart (1973) sowie Duda u. a. (2001) verwiesen.
9.3.1 Bayes’scher Klassifikationsansatz Die Bayes’sche Entscheidungstheorie ist ein fundamentaler statistischer Ansatz zur Mustererkennung.10 Wir wollen im Rahmen dieses Abschnittes nur eine generelle Entwicklung fur ¨ ein so genanntes Zwei-Klassen-Problem – Klassifikation von Holz respektive von Brettern – betrachten. Dabei soll Folgendes fur ¨ die Ent¨ (beiden) Zust¨ande mit wicklung gelten: ω sei die Gesamtmenge der moglichen ω = ω1 fur ¨ Eiche und ω = ω 2 fur ¨ Birke. Wenn eine S¨agemuhle ¨ genauso viel Birke wie Eiche produziert, dann konnen ¨ wir sagen, dass die Wahrscheinlichkeit dafur, ¨ dass das n¨achste Brett Eiche ist, genauso groß ist wie fur ¨ Birke. Etwas allge¨ meiner nehmen wir an, dass es so genannte A priori-Wahrscheinlichkeiten P(ω1 ) fur Eiche und P(ω 2 ) fur ¨ Birke gibt.11 Die a priori-Wahrscheinlichkeiten reflektieren letztendlich unser Vorwissen (auch Dom¨anenwissen) daruber, ¨ wie wahrscheinlich das Auftreten von Eiche oder Birke uberhaupt ¨ ist, bevor ein Brett erscheint, das klassifiziert werden soll. Die allgemeine Entscheidungsregel – fur ¨ das Zwei-Klassen-Problem ohne weitere Information – soll wie folgt lauten: Wenn die a priori-Wahrscheinlichkeit fur ¨ P(ω 1 ) > P(ω 2 ) ist, dann wird nach ω1 klassifiziert, andernfalls nach ω 2 . Wenn ¨ als P(ω 2 ) ist, dann liegen wir mit unserer Entscheidung P(ω 1 ) sehr viel großer fur ¨ ω 1 meistenteils richtig. Wenn P(ω1 ) = P(ω 2 ) gilt, dann haben wir nur eine 50:50-Chance fur ¨ die Richtigkeit der Entscheidung. In der Regel werden Entscheidungen aufgrund weiterer Informationen getroffen. Diese zus¨atzliche Information kann fur ¨ den Zwei-Klassen-Fall (Holzklassifikation) beispielsweise die gemessene Helligkeit x sein. Diverse Messungen der Bretter fuhren ¨ zu unterschiedlichen Helligkeitsbetrachtungen, die folgerichtig auch in Termen von Wahrscheinlichkeit ausgedruckt ¨ werden konnen. ¨ p( x|ω j ) sei die klassenbedingte Wahrscheinlichkeit, also die Wahrscheinlichkeitsdichtefunktion fur ¨ x, wenn ω j gegeben ist. Damit beschreiben p( x|ω 1 ) bzw. p( x|ω 2 ) letztendlich den Unterschied der Helligkeit x zwischen Eiche und Birke. In Abbildung 9.3 ist fur ¨ das 2-Klassen-Problem eine mogliche ¨ Beispielverteilung angegeben. Seien nun die A priori-Wahrscheinlichkeiten und die klassenbedingten Wahrscheinlichkeiten bekannt. Wenn die Helligkeit eines Brettes gemessen wird und der Wert von x soll bestimmt werden, dann wird das mit der Bayes’schen Regel 10Und
somit nicht zuletzt zur Objektklassifikation.
11Allgemein
∞
gilt: P (ω 1 ) ≥ 0 und P (ω 2 ) ≥ 0 sowie ∑ P (ω i ) = 1. i=1
9 Klassifikation
W a h rs c h e in lic h k e its d ic h te
122
p (x |w 1) p (x |w 2)
H e llig k e it [x ] Abbildung 9.3: Beispiel fur ¨ hypothetische klassenbedingte Wahrscheinlichkeitsdichtefunktionen – Zwei-Klassen-Fall
(fur ¨ den Zwei-Klassen-Fall) berechnet: p( x|ω j ) P(ω j ) p( x)
(9.6)
∑ p(x|ω j) P(ω j)
(9.7)
P(ω j | x) = mit p( x) =
2
j=1
Die Regel in Gleichung 9.6 berechnet also die Ver¨anderungen von der A prioriWahrscheinlichkeit zur A posteriori-Wahrscheinlichkeit unter der Beobachtung von x. In Abbildung 9.3 ist ein Beispiel fur ¨ einen Zwei-Klassen-Fall mit unterschiedlichen Wahrscheinlichkeitsdichtefunktionen dargestellt. Wenn wir also die Beobachtung x gemacht haben, fur ¨ die die Wahrscheinlichkeit ¨ ist als die Wahrscheinlichkeit P(ω 2 | x), dann werden wir uns naP(ω 1 | x) großer turgem¨aß fur ¨ die erste Alternative ω 1 entscheiden. Ist P(ω2 | x) großer ¨ als P(ω 1 | x), dann werden wir uns fur ¨ ω 2 entscheiden. Um nun diesen Entscheidungsprozess zu verifizieren, wollen wir uns im Folgenden Gedanken uber ¨ die Fehlerwahrscheinlichkeit machen: Immer wenn ein bestimmtes x beobachtet wird, dann ergibt sich die Fehlerabsch¨atzung zu: P( Fehler| x) =
¨ ω 2 entscheiden P(ω 1 | x), wenn wir uns fur P(ω 2 | x), wenn wir uns fur ¨ ω 1 entscheiden
(9.8)
Fur ¨ jede Instanz, bei der der gleiche Wert fur ¨ x beobachtet wird, kann die Fehlerwahrscheinlichkeit minimiert werden, und zwar durch die Entscheidung fur ¨ ω1 wenn P(ω1 | x) > P(ω 2 | x) bzw. ω 2 wenn P(ω2 | x) > P(ω 1 | x).12 Die Frage, die sich 12
Man wird schwerlich in der Praxis den exakt gleichen Wert fur ¨ x zweimal beobachten.
9.3 Klassifikation von Objekten
123
stellt, ist, ob diese Entscheidungsregel die mittleren Fehler auch minimiert. Dies kann mit einem Ja“ beantwortet werden. Die mittlere Fehlerwahrscheinlichkeit ” ist gegeben durch: P( Fehler)
= =
∞ −∞ ∞ −∞
P( Fehler, x)dx P( Fehler| x) p( x)dx
(9.9)
Wenn nun fur ¨ jedes x P( Fehler| x) so klein wie moglich ¨ ist, dann muss auch das Integral so klein wie moglich ¨ sein. Demnach haben wir (wenn auch nur sehr grob und empirisch) verifiziert, dass die so genannte Bayes’sche Entscheidungsregel die Fehlerwahrscheinlichkeit minimiert, so: W¨ahle ω 1 wenn P(ω1 | x) > P(ω 2 | x); andernfalls w¨ahle ω 2 .
(9.10)
Diese Form der Entscheidungsregel betont st¨arker die Rolle der A posterioriWahrscheinlichkeiten. Nutzt man Gleichung 9.6, kann die Entscheidungsregel unter Betonung der bedingten Wahrscheinlichkeiten formuliert werden. Dabei ist zu ¨ die eigentliche Entscheibeachten, dass p( x) in Gleichung 9.6 unerheblich ist fur dung – der Term ist hierbei eher ein Skalierungsfaktor, der P(ω 1 | x) + P(ω 2 | x) = 1 sicher stellt. Entfernt man diesen Skalierungsfaktor, so erh¨alt man einen a¨ quivalenten Ausdruck der Form: W¨ahle ω 1 wenn p( x|ω 1 ) P(ω 1 ) > p( x|ω 2 ) P(ω 2 ); andernfalls w¨ahle ω 2 . (9.11) Das erlaubt uns im vorliegenden Fall, eine Entscheidung zu treffen, wenn die A posteriori-Wahrscheinlichkeiten gleich sind. Dann n¨amlich h¨angt die Entscheidung von der A priori-Wahrscheinlichkeit ab. Dies soll fur ¨ einen groben intuitiven Einblick in die Entscheidung (Klassifikation) mittels Wahrscheinlichkeiten und der Bayes’schen Entscheidungsregel reichen. Im Weiteren werden wir die Diskrimanten- und die Distanzfunktionen ebenfalls ¨ nur kurz darstellen. Fur ¨ einen weitaus ausfuhrlicheren ¨ Einstieg bzw. Uberblick sei an dieser Stelle auf Niemann (1983); Duda und Hart (1973) bzw. Duda u. a. (2001) hingewiesen.
9.3.2 Diskriminantenfunktionen Eine weitere Moglichkeit ¨ der Klassifikation – neben dem oben beschriebenen Ansatz durch Wahrscheinlichkeiten – ist die Bestimmung von so genannten Diskriminantenfunktionen. Die Idee dieser Art von Klassifikation ist die Bestimmung einer Trennfunktion.13 Wir wollen uns das Prinzip anhand des Zwei-KategorienFalls verdeutlichen. Des Weiteren wollen wir uns auf lineare Trennfunktionen beschr¨anken. In der Abbildung 9.4 ist das Prinzip schematisch dargestellt. 13
Diese Trennfunktion kann beliebig komplex und von beliebiger Dimension sein.
124
x
9 Klassifikation
P ro to ty p e n 1
x 2
Abbildung 9.4: Schematische Darstellung der Klassifikation durch Diskriminantenfunktionen. Ein Beispiel fur ¨ ein lineare ist in Rot und fur ¨ eine stuckweise ¨ lineare Diskriminantenfunktion in Blau eingezeichnet. Diese Abbildung befindet sich auch auf der beiliegenden CD-ROM im Verzeichnis Abbildungen
Eine Diskriminantenfunktion ist somit eine lineare Kombination von Komponenten von x und kann allgemein wie folgt formuliert werden: g( x) = w t x + w0
(9.12)
mit w als Gewichtsvektor und w0 als Schwellwertgewicht. Die Entscheidungsregel fur ¨ den Zwei-Kategorien-Fall und einen linearen Klassifikator kann wie folgt formuliert werden: W¨ahle ω 1 , wenn g( x) > 0 bzw. ω 2 wenn g( x) < 0. Das bedeutet, dass x der Klasse ω 1 zugeordnet wird, wenn das innere Produkt wt x uber ¨ der Schwelle −ω0 liegt14 . Der Ausdruck g( x) = 0 definiert letztendlich die Grenze, die die Punkte, die ω 1 zugewiesen wurden, von den Punkten, die ω2 zugewiesen wurden, trennt. Wenn g( x) linear ist, dann ist das Erscheinungsbild“ der Grenze ” als so genannte Hyperebene zu bezeichnen. Im einfachsten Fall ist die Trennfunktion eine Gerade durch den Merkmalsraum. Liegen sowohl x1 als auch x 2 direkt auf der Grenze, so gilt:
oder
wt x1 + w0 = wt x2 + w0
(9.13)
wt ( x1 − x2 ) = 0
(9.14)
Das bedeutet, dass w senkrecht zu jedem anderen Vektor ist, der in der Hyperebene liegt. Im Allgemeinen unterteilt die Hyperebene H den Merkmalsraum in zwei ¨ ω 1 und R2 fur ¨ ω 2 . Ist g( x) > 0 dann H¨alften – die Entscheidungsregion R1 fur liegt x in R1 und der Normalenvektor w zeigt in R1 . Manchmal wird auch davon Fall g ( x ) = 0 soll fur ¨ diese und weitere Betrachtungen keine Rolle spielen. In der Praxis wird man ein ≥ oder ein ≤ w¨ahlen.
14Der
9.3 Klassifikation von Objekten
M
125
w
g (x ) > 0
0
N |g ( x ) | || w ||
|| w ||
g (x ) < 0
g (x ) = 0
Abbildung 9.5: Geometrische Deutung der linearen Trennfunktion g( x) = w t x + w0 = 0
gesprochen, dass jedes x in R1 auf der positiven Seite bzw. jedes x in R 2 auf der negativen Seite von H liegt. Die Diskriminantenfunktion g( x) kann auch als algebraisches Abstandsmaß angesehen werden, das den Abstand zwischen x und der Hyperebene berechnet. Das kann leicht aus w (9.15) x = xp + r w abgeleitet werden. x p ist hierbei die (Normal-)Projektion von x auf H und r ist der gewunschte“ ¨ algebraische Abstand. r ist positiv, wenn x auf der positiven Seite, ” bzw. negativ, wenn x auf der negativen Seite ist. Sei g( x p ) = 0, dann folgt g( x) = w t x + w 0 = rw, oder r=
g( x) . w
(9.16)
(9.17)
Das bedeutet, dass der Abstand vom Ursprung zu H durch ww0 gegeben ist. Ist ¨ w0 > 0, dann ist der Ursprung auf der positiven Seite von H - entsprechend fur den negativen Fall. Ist g( x) = 0, dann hat g( x) die Form w t x, und die Hyperebene geht durch den Ursprung. Zur Veranschaulichung dieses Sachverhaltes soll die folgende Abbildung 9.5 dienen. Also teilt eine lineare Trennfunktion (Diskriminantenfunktion) den Merkmalsraum durch eine so genannte Hyperebene in zwei H¨alften. Die Orientierung der Ebene ist durch den Normalenvektor w bestimmt. Die Position der Ebene ist durch das Schwellwertgewicht w0 gegeben. Die Diskriminantenfunktion ist proportional zum (mit einem Vorzeichen behafteten) Abstand von x zur Ebene. Dabei ist g( x) > 0, wenn x auf der positiven Seite liegt, und g( x) > 0, wenn x auf der negativen Seite liegt.
126
9 Klassifikation
9.3.3 Distanzfunktionen Das wohl intuitivste Prinzip der Klassifikation ist die Berechnung von Abstandsmaßen. Die Idee hierbei ist, dass der Abstand zwischen gemessenen Ereignissen und so genannten Prototypen15 von Klassen bestimmt wird. Ist der Abstand klein, ¨ dann ist die Ahnlichkeit groß und umgekehrt. Der Zusammenhang zwischen Ab¨ stand D (distance) und Ahnlichkeit S (similarity) l¨asst sich wie folgt beschreiben: S = 1−D
(9.18)
¨ das bedeutet, dass die Ahnlichkeit maximal (also Eins) wird, wenn der Abstand Null betr¨agt. Die Entscheidungsregel ist fur ¨ den einfachen Fall nahezu trivial: Das gemessene Ereignis wird der Klasse mit dem geringsten Abstand zum Prototypen zugewiesen. Ausflug: Metrik Um Distanzen zu bestimmen, muss eine Metrik definiert sein und dem System zugrunde liegen. Um eine Metrik zu definieren, mussen ¨ folgende drei Bedingungen erfullt ¨ sein, mit D als Distanzfunktion und x, y, z als drei Ereignisse in dem entsprechenden System. D ist eine Metrik, wenn 1. D ( x, y) = 0 ⇐⇒ x = y 2. D ( x, y) = D ( y, x) 3. D ( x, z) ≤ D ( x, y) + D ( y, z) gilt. Fur ¨ den Beweis“ sei an dieser Stelle nochmals auf Duda und Hart (1973) verwie” sen. Aber was wird mit den drei Bedingungen verlangt bzw. was bedeuten sie? 1. sagt aus, dass der Abstand zweier Ereignisse x, y Null ist, wenn die Ereignisse gleich sind; 2. sagt aus, dass der Abstand von x zu y gleich dem Abstand von y zu x sein soll, und 3. sagt aus, dass der direkte Abstand zweier Ereignisse x, z kleiner oder gleich der Summe der Abst¨ande zwischen den Ereignissen x, y und y, z sein muss. Einfache Abstandsmaße Im Folgenden soll anhand von einfachen Abstandsmaßen der so genannte Minimum-Distance-Classifier vorgestellt werden. Dieser Klassifikator berechnet den minimalen Abstand eines Ereignisses x zu vorgegebenen Ereignissen yn in den 15Prototyp,
auch Urbild, Vorbild, Muster, Normalmaß; [grch. protos erster“ + typos Abdruck, Bild“] ” ” nach wissen.de (2002). Der Prototyp ist sozusagen der Inbegriff der jeweiligen Klasse oder Kategorie. Praktisch ist das eher der Mittelwert einer Klasse.
9.3 Klassifikation von Objekten
127
P ro to ty p e n x 1
x 2
A b s tä n d e z u d e n P ro to ty p e n Abbildung 9.6: Schematische Darstellung der Klassifikation durch Abstand zu Prototypen
x
P ro to ty p e n 1
x 2
A b s tä n d e z u d e n n ä c h s te n N a c h b a rn Abbildung 9.7: Schematische Darstellung der Klassifikation durch Abstand zu k n¨achste Nachbarn(n)
jeweiligen Klassen. Die yn sind in der Regel die Prototypen der jeweiligen Klasse (vgl. Abbildung 9.6). Dieser einfache Klassifikator kann nahezu beliebig erweitert bzw. ver¨andert und somit komplexer gestaltet werden. Eine mogliche ¨ Erweiterung kann die Berechnung des Abstandes eines Ereignisses x zu mehreren Vertretern einer Klasse sein, die vorzugsweise am Rand der jeweiligen Klasse liegen. Hier spricht man auch von einer so genannten N¨achsterNachbar-Klassifikation. Wird nicht nur der Abstand zu dem jeweils dichtesten Nachbarn einer Klasse berechnet, sondern zu k Nachbarn, dann spricht man von einer k-N¨achster-Nachbar-Klassifikation. Abbildung 9.7 illustriert dies. Das Ereignis x ist in der Regel ein m-elementiger Merkmalsvektor, und die y n haben auch die Dimension m. Im Folgenden werden ein paar einfache und h¨aufig verwendete Abstandsmaße aufgefuhrt ¨ (vgl. Ballard und Brown (1982)).
128
9 Klassifikation
Der Euklid’sche Abstand berechnet sich zu: De ( x m , y m ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + . . . + ( x m − y m ) 2
(9.19)
Der City-Block-Abstand berechnet sich zu: Dcb ( xm , y m ) = | x1 − y1 | + | x2 − y2 | + . . . + | x m − ym |
(9.20)
Der Schachbrett-Abstand berechnet sich zu: Dsb ( xm , y m ) = max {| x1 − y1 |, | x 2 − y2 |, . . . , | x m − ym |}
(9.21)
9.4 Zusammenfassung ¨ Dieser grobe Uberblick soll an dieser Stelle ausreichen fur ¨ eine kurze Einfuhrung ¨ in die Klassifikation. Wir haben gesehen, dass mit relativ einfachen Mitteln bereits wirkungsvolle“ Klassifikatoren erstellt werden konnen. ¨ Am wichtigsten ist ” allerdings die Auswahl der Merkmale, anhand derer klassifiziert werden soll. Sie mussen ¨ notwendigerweise signifikant sein. Sind sie es nicht, dann wird auch der beste Klassifikator Schwierigkeiten haben, gemessene Ereignisse mit hinreichend guter Diskriminierung zu klassifizieren. Abstandsmaße sind am intuitivsten, da hier ein Ereignis jener Klasse zugeordnet wird, zu der das Ereignis den kleinsten Abstand hat. Mehrdimensionale Trennfunktionen (Trenn-Hyper-Ebenen) sind in der Regel schwerer vorzustellen, sodass diese Klassifikatoren als eher nicht intuitiv bezeichnet werden konnen. ¨ Korrespondierende Aufgaben zu diesem Themenblock finden Sie in Anhang C.10.
Kapitel 10
Bewegungsanalyse ¨ In diesem Kapitel wollen wir uns kurz einen Uberblick uber ¨ die Bewegungsanalyse von Bildfolgen (auch Bildsequenzen, Sequenzen) verschaffen. Zun¨achst werden wir sehen, wie Bewegung uberhaupt ¨ in zwei aufeinander folgenden Bildern bestimmt werden kann und auch welche Probleme es dabei gibt. Ebenso werden wir unser Bewusstsein fur ¨ die allgemeinen Probleme – Blendenproblem und Korrespondenzproblem – sch¨arfen. Die Verfahren zur Bewegungsbestimmnung konnen ¨ grob in vier Klassen eingeteilt werden: Bewegungsbestimmung durch Differenzbilder (vgl. Abschnitt 10.1) Zuordnungsverfahren – Blockmatching (vgl. Abschnitt 10.3.2) – Merkmalsbasierte Verfahren (vgl. Abschnitt 10.3.1) Differentielle Verfahren (vgl. Abschnitt 10.4) Filterbasierte Verfahren Die Grundprinzipien dieser Ans¨atze werden in den folgenden Abschnitten erl¨autert. Die filterbasierten Verfahren bestimmen ein so genanntes Verschiebungsvektorfeld durch die Anwendung von Filtern, wie beispielsweise Gaborfilter. In J¨ahne (1991) l¨asst sich eine ausfuhrliche ¨ Besprechung dieser Ans¨atze finden. Wir wollen uns auf die ersten drei prinzipiellen Verfahrensweisen konzentrieren, da die Herangehensweise intuitiver ist. Ebenso lassen sie sich leichter in die Praxis umsetzen. Des Weiteren ist die Performanz dieser Ans¨atze hoher. ¨
130
10 Bewegungsanalyse
10.1 Bewegungsbestimmung durch Grauwertver¨anderungen Die erste Frage, die sich stellt, ist die Frage nach der Bestimmung der Bewegung in zwei zeitlich aufeinander folgenden Bildern. Oder einfacher: Was hat sich von einem Bild zum anderen ver¨andert? Ein erster Ansatz hierzu ist, die Ver¨anderung der Intensit¨atswerte1 zu lokalisieren und dann die entsprechende Ursache der Ver¨anderung zu ermitteln. In Abbildung 10.1 ist die Szene einer Toreinfahrt zu sehen, durch die ein Taxi f¨ahrt. Die Unterschiede zwischen Bild 10.1 a) und 10.1 b) sind kaum durch einen direkten Vergleich zu erkennen. Mit Hilfe eines so genannten Differenzbildes konnen ¨ die Unterschiede, also die Grauwertver¨anderungen, sichtbar gemacht werden. In Abbildung 10.1 c) ist ein solches Differenzbild dargestellt. Man kann deutlich die Umrisse des Taxi sehen. Das Taxi hat sich ein wenig zur Kamera bewegt. Der Hintergrund (z.B. B¨aume) hat sich offensichtlich nicht bewegt, oder nur sehr schwach, sodass durch die Differenz die Bewegung gar nicht oder kaum detektierbar ist. Die Abbildungen 10.1 d) und e) zeigen eine andere Szene. Im zugehorigen ¨ Differenzbild (Abbildung 10.1 f)) lassen sich die Intensit¨atswertver¨anderungen leichter erkennen. An Stellen, an denen die Grauwerte kaum Ver¨anderungen aufweisen, konnen ¨ wir auch keine Grauwertdifferenz feststellen. Diese einfachen Beispiele zeigen, dass wir Bewegung an Grauwertver¨anderungen durch Differenzbilder sichtbar machen konnen. ¨ Etwas genauer konnen ¨ wir sagen, dass uns die Differenz zwischen einem Bild und seiner um ein kleines Stuck ¨ verschobenen Kopie die Grauwertkanten, die senkrecht zu dieser Verschiebung orientiert sind, zeigt. Das erkl¨art sich dadurch, dass die Berechnung der Differenz zwischen wenig verschobenen Bildpunkten die erste Ableitung der Grauwertmatrix in Verschiebungsrichtung darstellt (siehe auch J¨ahne (1991)). Da Bewegung (nur) dort detektiert und bestimmt werden kann, wo sich Grauwerte (von Bild zu Bild) ge¨andert haben, lautet eine mogliche ¨ wichtige Frage: Ist das immer so gultig? ¨ Und eine weitere wesentliche Frage l¨asst sich etwa wie folgt formulieren: L¨asst sich auch der Umkehrschluss daraus folgern? Bedeutet eine Grauwertver¨anderung immer eine Bewegung? Die Antwort auf die Fragen(n) ist ein deutliches Nein. Prinzipiell kann Bewegung ¨ eine Anderung der Intensit¨atswerte nach sich ziehen – sie muss es aber nicht. Des ¨ Weiteren gilt, dass der Umkehrschluss ebenso unzul¨assig ist. Eine Anderung der Grauwerte kann durch eine Bewegung verursacht worden sein – muss sie aber nicht. Es existieren weitere Ursachen fur ¨ eine Grauwertver¨anderung in aufeinander folgenden Bildern neben der Bewegung. So verursacht ein simple Beleuchtungs¨anderung der jeweiligen Szene eine detektierbare Ver¨anderung der Grau1
Im Folgenden werden die Begriffe Grauwert und Intensit¨atswert synonym verwendet.
10.1 Bewegungsbestimmung durch Grauwertver¨anderungen
131
a )
d )
b )
e )
c )
f)
Abbildung 10.1: c) ist Differenzbild von a) und b). f) ist Differenzbild von d) und e). Der schwarze Rand (oben, unten und links) ist ein Artefakt der Digitalisierung
werte. Ein Beispiel ist in Abbildung 10.2 abgebildet. Des Weiteren kann in der gleichen Szene durch Schließen der Tur ¨ eine Beleuchtungs¨anderung verursacht werden. Das Schließen ist dann allerdings wieder eine Bewegung, und die direkte Auswirkung auf die Szene ist eine Ver¨anderung des Reflexionsverhaltens und hat somit ebenso eine Beleuchtungs¨anderung zur Folge. ¨ Als Fazit dieser Uberlegungen kann gesagt werden, dass Differenzbilder Regio-
132
10 Bewegungsanalyse
a )
b )
c ) Abbildung 10.2: c) ist Differenzbild von a) und b). Man erkennt die Beleuchtungs¨anderung im Differenzbild. Es hat hier aber keine Bewegung stattgefunden. Lediglich die Beleuchtung im hinteren Raum wurde eingeschaltet
nen im Bild bestimmen konnen, ¨ in denen Bewegung in aufeinander folgenden Bildern (Sequenz) stattfindet. Allerdings ist eine Ver¨anderung, die durch ein Differenzbild sichtbar gemacht wird, nicht immer durch eine Bewegung verursacht. Auch einfache Beleuchtungs¨anderungen fuhren ¨ zu Ausschl¨agen“ im Differenz” bild.
10.2 Blenden- und Korrespondenzproblem
133
10.2 Blenden- und Korrespondenzproblem Nachdem wir im vorigen Abschnitt einen ersten Ansatz zur Bewegungsdetektion durch Differenzbilder kennen gelernt haben, wollen wir uns im folgenden der Frage widmen, wie die Bewegung nun quantitativ bestimmt werden kann. Dazu wollen wir wie immer davon ausgehen, dass wir einen lokalen Operator zur Bewegungsbestimmung verwenden. Das bedeutet, dass dieser Operator jeweils nur einen kleinen (lokalen) Ausschnitt betrachtet, bedingt durch seine Maskengroße. ¨ Die Analyse der Bewegung erfolgt durch ein Verschieben der Blende uber ¨ das Bild. Abbildung 10.3 zeigt Beispiele fur ¨ die Auswirkungen dieser durch eine Blende eingeschr¨ankten Betrachtungsweise. Bewegung wird im Allgemeinen durch so genannte Verschiebungsvektorfelder (VVF) beschrieben. Hierbei verbindet jeder einzelne Verschiebungsvektor (VV) zwei korrespondierende Punkte eines Objektes, das in zwei aufeinander folgenden Bildern detektiert wurde.
?
a )
b )
Abbildung 10.3: Schematische Veranschaulichung des Blendenproblems im Hinblick auf die Bestimmung der Bewegung innerhalb einer Blende. Die Pfeile symbolisieren die so genannten Verschiebungsvektoren (VV). a) Diese VV konnen ¨ fur ¨ einen Punkt der Kante nicht eindeutig bestimmt werden. b) Wird ein Eckpunkt betrachtet, so kann eine eindeutige Verschiebung bestimmt bzw. ein VV berechnet werden
Die zeitliche Abfolge in der Abbildung 10.3 wird durch die durchgezogenen Linien und die gestrichelten Linien dargestellt. Dabei ist die durchgezogene Linie zeitlich vor der gestrichelten. In der Abbildung 10.3 a) l¨asst sich keine eindeutige Zuordnung von Kantenpunkten zueinander durch VV bestimmen. Es besteht eine gewisse Mehrdeutigkeit in der Bewegung. Der betrachtete Kantenpunkt kann sich irgendwohin bewegt haben. Eindeutig ist nur, dass sich der Kantenpunkt immer noch auf der Kante (Abbildung 10.3 a) gestrichelte Linien) befinden muss. Prinzipiell kann der Kantenpunkt auch außerhalb der Blende liegen. In Abbildung 10.3 b) kann eine eindeutige Bestimmung der VV erfolgen, da hier insbesondere die Eckpunkte fur ¨ die Bestimmung genutzt werden konnen. ¨ Allerdings kann es vorkommen, dass die Eckpunkte allein auch nicht zur Bestimmung der VV ausreichen. Es mussen ¨ noch weitere einschr¨ankende Annahmen gemacht werden. Beispielsweise muss eine Annahme uber ¨ die Art und Weise der Bewegung, die
134
10 Bewegungsanalyse
detektiert werden soll, gemacht werden.2
10.3 Zuordnungsverfahren Im Gegensatz zum Prinzip, mittels Differenzbilder die Bewegung zu sch¨atzen, versuchen die folgenden Ans¨atze immer die Bewegung oder auch den VV eines Bildpunktes oder eines Bereiches zu bestimmen. Als erste Familie“ von Verfah” ren seien an dieser Stelle die so genannten Zuordnungsverfahren genannt. Das Charakteristische dieser Verfahren ist, dass sie versuchen, bestimmte Merkmale oder Strukturen eines Bildes denen eines (in der Regel zeitlich folgenden) anderen Bildes zuzuordnen. Durch diese Zuordnung lassen sich dann VV bzw. VVF bestimmen.
10.3.1 Merkmalsbasierte Verfahren Die so genannten merkmalsbasierten Verfahren bestimmen die Bewegung, indem sie in der Regel einen VV zwischen signifikanten, a¨ hnlichen Strukturen, die in mindestens zwei aufeinander folgenden Bildern vorkommen, bestimmen. Die Merkmale bzw. Strukturen mussen ¨ gewissen Anforderungen genugen, ¨ um fur ¨ eine Bewegungsbestimmung geeignet zu sein. Zun¨achst einmal mussen ¨ diese Merkmale einigermaßen konstant sein. Das bedeutet, dass sie in aufeinander folgenden Bildern nicht stark variieren durfen, ¨ damit zum einen eine sichere und robuste Detektion moglich ¨ ist sowie eine nachfolgende Zuordnung moglichst ¨ genau erfolgen kann. Zum anderen sollten diese Merkmale in einer hinreichenden Dichte in den jeweiligen Bildern vorhanden sein. Werden beispielsweise Ecken als Merkmal gew¨ahlt, so liefern diese ein eher dunnes ¨ VVF. Dunn ¨ deswegen, weil nur an den Stellen, an denen die Ecken vorkommen, Eintr¨age im VVF vorhanden sind. Da fur ¨ viele Anwendungen ein eher dichtes VVF benotigt ¨ wird, reicht in der Regel ein dunnes ¨ VVF nicht aus. Hierbei wird durch Interpolation nachgehol” fen“ . Allerdings kann die Interpolation insbesondere an Objektkanten zu Fehlern fuhren. ¨ Ein weiteres Kriterium fur ¨ die Merkmale ist die moglichst ¨ einfache Extraktion aus dem Bild. Stellt man sich eine Echtzeitanwendung vor (zum Beispiel die Steuerung eines autonomen Fahrzeugs, das sich mit mehreren km/h bewegt), dann mussen ¨ die Merkmale und auch die Zuordnung der Merkmale von Bild zu Bild im Allgemeinen schneller als in Echzeit extrahiert bzw. zugeordnet werden. Die Eigenschaften der merkmalsbasierten Ans¨atze, also das in der Regel vorkommende eher dunne ¨ VVF sowie die auch nicht immer einfache und schnelle Extrak¨ tion aus dem Bild fuhrten ¨ zu der Uberlegung eher ganze Bildbereiche – Blocke ¨ – einander zuzuordnen. Diese Gruppe von Verfahren, die Blockvergleichsverfahren (Block-matching-Verfahren), sind Gegenstand des folgenden Abschnitts. 2
Siehe hierzu die Annahmen zum optischen Fluss.
10.3 Zuordnungsverfahren
135
10.3.2 Block-matching-Verfahren Der Block-matching-Ansatz versucht einen Bereich eines Bildes – also eine lokal beschr¨ankte Fl¨ache von benachbarten zusammenh¨angenden Bildpunkten respektive die r¨aumliche Anordnung von Intensit¨atswerten – in einem zeitlich folgenden Bild zu finden. Die beiden wesentlichen Vorteile sind zum einen, dass es nicht notwendig ist, Merkmale aus den Bildern zu extrahieren, und zum anderen, dass man ein relativ dichtes VVF erh¨alt, unter der Annahme, dass die Bildpunkte innerhalb eines Blocks dieselbe oder doch zumindest eine sehr a¨ hnliche Bewegung vollziehen. Ein Nachteil ist allerdings, dass die Suche des a¨ hnlichsten Blocks im zweiten Bild durchaus mit Rechenaufwand behaftet ist. Das Grundprinzip eines Block-matching-Ansatzes ist, dass zun¨achst ein Bild zum Zeitpunkt t in Subfenster (Blocke) ¨ unterteilt wird. In Abbildung 10.4 (links) ist ein moglicher ¨ Block rot eingezeichnet. In einem zeitlich darauf folgenden Bild zum Zeitpunkt t + ∆ (Abbildung 10.4 (mitte)) wird dann dieser Block bzw. der beste Match innerhalb eines Suchraumes (blauer Kasten) gesucht. x
x
x
y
Z e itp u n k t t
Z e itp u n k t t+ ,
Z e itp u n k t t+ ,
Abbildung 10.4: Prinzip des Blockmatching. Diese Abbildung befindet sich auch auf der beiliegenden CD-ROM im Verzeichnis Abbildungen
In Abbildung 10.4 (rechts) ist der beste Match dadurch gekennzeichnet, dass der rote Block innerhalb des blauen Blocks an die entsprechende Position verschoben wurde. Ein VV l¨asst sich nun vom Mittelpunkt des roten Blocks zum Zeitpunkt t bis zum Mittelpunkt des roten Blocks zum Zeitpunkt t + ∆ (nach dem Match) bestimmen. Es wird also nichts anderes gemacht, als eine (Kreuz-)Korrelation zwischen korrespondierenden Bereichen in zeitlich aufeinander folgenden Bildern zu bestimmen, wobei ein Bereich aus dem ersten Bild B1 als Muster dient, das im zweiten Bild B2 wiedergefunden werden soll. Man spricht auch von so genannten Korrelationsverfahren. In J¨ahne (1991) wird mit Hilfe der Kreuzkorrellation der beste VV R(s) ermittelt, und zwar hinsichtlich eines Bildbereiches N und zweier Bilder E1 und E2 , sowie s als Verschiebung:
136
10 Bewegungsanalyse
R(s) =
E1 ( x) E 2 ( x + s)dx.
(10.1)
N
10.4 Bewegungsbestimmung durch Differentielle Verfahren Die Kontinuit¨at des optischen Flusses ist die Grundlage der so genannten differentiellen Verfahren. In Analogie zur Stromungsphysik ¨ wird hierbei angenommen, dass anstatt Flussigkeiten ¨ Intensit¨atswerte stromen ¨ und dass ein visuelles Signal seine Ursache in einer physikalischen Bewegung hat. Prinzipiell berechnet man die Verschiebung der Grauwertfunktion (Intensit¨atswerte) mit Hilfe von differentialgeometrischen Methoden. Hierbei existiert die Annahme, dass sich die Grauwertfunktion in einer kleinen Umgebung um jeden Bildpunkt linear approximieren l¨asst. In dem Fall spricht man auch von Gradientenverfahren. Fur ¨ die ¨ folgenden Uberlegungen gelten die Annahmen, dass zum einen die Luminanz (Intensit¨at) eines Bildpunktes zeitlich (nahezu) konstant bleibt und zum anderen, dass die Bildfunktion e differenzierbar ist. e( x, y, t) bezeichnet eine kontinuierliche Grauwertfunktion am Punkt ( x, y) zum Zeitpunkt t. Anders ausgedruckt ¨ bezeichnet die Funktion die Helligkeit eines Bildpunktes zu einem bestimmten Zeitpunkt. L¨asst sich eine Relativbewegung des Bildpunktes zur Kamera beobachten, so ver¨andern sich dessen Bildkoordinaten im Zeitinterval dt. Es gilt die folgende Beziehung: e( x, y, t) = e( x + dx, y + dy, t + dt).
(10.2)
Wird die Taylorreihenentwicklung auf die rechte Seite der obigen Gleichung angewendet, so erh¨alt man: e( x + dx, y + dy, t + dt) = e( x, y, t) +
∂e ∂e ∂e dx + dy + dt + r(dx, dy, dt), (10.3) ∂x ∂y ∂t
wobei der Term r(dx, dy, dt) Terme hoherer ¨ als erster Ordnung zusammenfasst. Dieser Ausdruck kann vernachl¨assigt werden, und zwar unter der Annahme (wie bereits erw¨ahnt), dass sich der Grauwertverlauf linear approximieren l¨asst. Subtrahiert man nun e( x, y, t) in der Gleichung 10.2 und dividiert durch dt, so erh¨alt man die Gleichung: ∂e dy ∂e ∂e dx + + = 0. ∂x dt ∂y dt dt
(10.4)
Bezeichnet man die partiellen Ableitungen mit tiefer gestellten Indizes und ver-
10.4 Bewegungsbestimmung durch Differentielle Verfahren
einfacht noch Folgendes u =
dx dt
bzw. v =
dy dt ,
137
so erh¨alt man die Beziehung
e x u + e y v + et = 0,
(10.5)
die auch als Einschr¨ankungsgleichung bekannt ist. Dadurch werden die potenziellen Geschwindigkeiten auf Geraden im u, v-Raum beschr¨ankt. Ein Beispiel zur Sch¨atzung des optischen Flusses respektive der Bewegung Im Folgenden wollen wir die Sch¨atzung des optischen Flusses (s.o.) fur ¨ die drei partiellen Ableitungen E x , E y und Et bestimmen. In Abbildung 10.5 sind die betrachteten Bildpunkte fur ¨ die Sch¨atzung in Wurfelform ¨ abgebildet. Ausgehend ¨ die vom Punkt (i, j) wird die Sch¨atzung in x- bzw. y-Richtung (i bzw. j) und fur Zeit t (k) durchgefuhrt. ¨
Abbildung 10.5: Sch¨atzung der Bewegung fur ¨ die drei partiellen Ableitungen E x , E y und E t am Punkt (i, j)
Die drei Sch¨atzungen erfolgen mittels der folgenden Gleichungen:
Ex
Ey
Et
≈
≈
≈
1 {( Ei, j+1,k − Ei, j,k ) + ( Ei+1, j+1,k − Ei+1, j,k ) 4 +( Ei, j+1,k+1 − Ei, j,k+1 ) + ( Ei+1, j+1,k+1 − Ei+1, j,k+1)}
(10.6)
1 {( Ei+1, j,k − Ei, j,k ) + ( Ei+1, j+1,k − Ei, j+1,k ) 4 +( Ei+1, j,k+1 − Ei, j,k+1 ) + ( Ei+1, j+1,k+1 − Ei, j+1,k+1)}
(10.7)
1 {( Ei, j,k+1 − Ei, j,k ) + ( Ei+1, j,k+1 − Ei+1, j,k) 4 +( Ei, j+1,k+1 − Ei, j+1,k ) + ( Ei+1, j+1,k+1 − Ei+1, j+1,k)}
(10.8)
138
10 Bewegungsanalyse
Um nun u und v daraus zu bestimmen, brauchen wir eine weitere Gleichung – die Einschr¨ankungsgleichung (s.o.). Diese Gleichung fordert sozusagen glatte Bewegungen, was wiederum bedeutet, dass benachbarte Punkte gleiche oder sehr a¨ hnliche Bewegungen durchfuhren. ¨ Horn und Schunk (Horn und Schunck, 1981) schlagen eine iterative Verbesserung des VV respektive von u und v und somit der Bewegung durch die folgenden Iterationsvorschriften vor: u(n+1) = u¯ (n) −
E x ( E x u¯ (n) + E y v¯ (n) + Et ) α 2 + E2x + E2y
(10.9)
v(n+1) = v¯ (n) −
E y ( E x u¯ (n) + E y v¯(n) + Et ) α 2 + E2x + E2y
(10.10)
und
u¯ und v¯ erh¨alt man durch eine Filterung von u und v mit dem Laplace-Operator (vgl. auch Kapitel 5, Seite 64f). Der Laplace-Operator hat die in der Abbildung 10.6 dargestellte Charakteristik. 1 1 1
∇2HS =
12 1 6 1 12
6
−1 1 6
12 1 6 1 12
Abbildung 10.6: Gewichtung des Laplace-Operators fur ¨ die iterative Bewegungssch¨atzung nach Horn und Schunck (1981)
Mittels des eben beschriebenen Ansatzes l¨asst sich die Bewegung sch¨atzen und iterativ kann die Sch¨atzung verbessert werden. Allerdings werden dabei die folgenden drei Annahmen oder Voraussetzungen getroffen: Erstens wird angenommen, dass eine Ver¨anderung im Bild Bewegung bedeutet. Wir haben zu Beginn dieses Kapitels gesehen, dass dem nicht immer so ist. Eine einfache Beleuchtungsvariation kann im ungunstigen ¨ Fall ebenfalls als Bewegung interpretiert werden. Zweitens wird angenommen, dass die im Muster (respektive Objekt oder segmentierte Region) vorkommenden Bildpunkte sich nicht ver¨andern. Auch hier muss man vorsichtig sein, da die weiter oben angefuhrten ¨ Argumente hinsichtlich der Beleuchtungs¨anderung auch hier greifen. Drittens wird angenommen, dass die Glattheitseinschr¨ankung (engl. smoothness constraint) uneingeschr¨ankt gultig ¨ ist. Das heißt, dass alle Bewegungen weich und gleichm¨aßig und dadurch die Intensit¨atswerte differenzierbar sind. Das mag in der Regel so sein, sicher kann man sich dessen allerdings nicht sein. Treten also keine sich uberlappenden ¨ Objekte im Bild auf und die Beleuchtungsver¨anderungen sind hinreichend gering, dann kann relativ robust die Bewegung im Bild gesch¨atzt werden.
10.5 Zusammenfassung
139
10.5 Zusammenfassung Wir haben in diesem Kapitel Methoden zur Detektion bzw. zur Analyse von Bewegung in Bildern bzw. Bildfolgen kennen gelernt. Die Ans¨atze gehen vom einfachen Differenzbildansatz uber ¨ Zuordnungsverfahren von Merkmalen bzw. ganzen Blocken ¨ bis hin zu differentiellen Verfahren. Grunds¨atzlich muss bei der Bewegungsbestimmung das Blenden- bzw. Korrespondenzproblem beachtet werden. In der Regel werden Annahmen im Rahmen der einzelnen Methoden getroffen, die es ermoglichen, ¨ mit dem Blenden- bzw. Korrespondenzproblem umzugehen. Des Weiteren haben wir allerdings auch gesehen, dass Differenzbilder eher ungeeignet sind, um robust und zuverl¨assig etwas uber ¨ Bewegung in zeitlich aufeinander folgenden Bildern aussagen zu konnen. ¨ Die uns allen bekannte MPEG-Codierung verwendet u.a. einen Block-matchingAnsatz (vgl. Bosi und Goldberg (2003)). Bewegungsanalyse findet in vielen Bereichen Anwendung. Beispielsweise werden Effekte auf Laufschuhsohlen und deren Konstruktion analysiert (vgl. Thompson u. a. (1999)). Eine a¨ hnlich Anwendung im Bereich des Sports l¨asst sich in Frischholz (1999) finden. Auch bei so genannten Crash-Tests bzw. Kollisionsde¨ tektionen wird Bewegungsanalyse eingesetzt (Ponamgi u. a., 1997). Ein Uberblick zu diesem Thema l¨asst sich in Lin und Gottschalk (1998) finden. Korrespondierende Aufgaben zu diesem Themenblock sind in Anhang C.11 zu finden.
Kapitel 11
Fouriertransformation Bevor wir uns mit der Fouriertransformation besch¨aftigen, sollen einige allgemeine Gedanken zu Frequenzen im Vordergrund stehen. Sie dienen als Auffrischung dessen, was eigentlich schon bekannt sein sollte. Alle weiteren Betrachtungen basieren im Wesentlichen auf Brigham (1982); Stootman (2001); Abmayr (1994) bzw. Pratt (1978). 1 Wir wollen im weiteren nur periodische Signale (Frequenzen) betrachten. Als Erstes konnen ¨ wir uns uberlegen, ¨ was eine Frequenz auszeichnet? Da ist zun¨achst die eigentliche Frequenz bzw. die Periodenl¨ange. Der Zusammenhang ist wie folgt gegeben. Sei f die Frequenz eines Signals, dann ist T = 1f die Periodenl¨ange T. Umgangssprachlich konnte ¨ man sagen, dass die Periodenl¨ange die Strecke des Signals ist, in der sich das Signal nicht wiederholt. Nimmt man beispielsweise eine Sinusschwingung (ohne Phasenverschiebung), dann startet das Sinussignal bei 0, hat ein Maximum bei π2 , eine Nullstelle bei π , ein Minimum bei 32π und wieder eine Nullstelle bei 2π . Anschließend beginnt sich das Signal zu wiederholen. Sei dieses Signal nun eine Zeile im diskreten Bild, kann man sich fragen, wie es wohl im Diskreten angen¨ahert wurde. ¨ Die Antwort ist relativ einfach: Ausgehend von einem mittleren Grauwert zu Beginn der Zeile wurde ¨ ein Grauwertverlauf in Richtung Weiß zu beobachten sein (bis zum Maximum), anschließend konn¨ te ein Grauwertverlauf von Weiß nach Schwarz (bis zum Minimum) und dann wieder ein Grauwertverlauf bis zum mittleren Grauwert zu beobachten sein. Die Nulllinie wurde hier sinngem¨aß auf den mittleren Grauwert gelegt. Die Grauwertverl¨aufe sind hierbei nicht linear, sondern haben die Charakteristik einer Sinuskurve. In Abbildung 11.1 sind drei solcher Ortssignale mit dem jeweils korre1 In diesem Kapitel ließ sich die bisher verwendete Notation hinsichtlich Eingabe- bzw. Ausgabebild nicht mehr durchhalten. Es ist im Rahmen der Fourieranalyse ublich, ¨ Bilder im Ortsbereich mit kleinen Buchstaben und Bilder im Ortsfrequenzbereich mit großen Buchstaben zu bezeichnen. Diese Schreibweise wurde fur ¨ dieses Kapitel berucksichtigt, ¨ damit der Leser sich in der referenzierten und auch daruber ¨ hinausgehenden Literatur einfacher zurecht findet.
142
11 Fouriertransformation
(a)
(b)
(c)
Abbildung 11.1: Drei vertikale Sinuswellen mit korrespondierenden Zeilenprofilen. Zur besseren Darstellung in O RASIS 3D wurden die Bilder jeweils in ein Double-Bild umgewandelt
spondierenden Zeilenprofil dargestellt. Anhand des jeweiligen Zeilenprofils l¨asst sich die sinusformige ¨ Charakteristik deutlich erkennen.
143
Ein weiterer bestimmender Faktor einer Frequenz ist deren Amplitude. Das heißt, wie groß der maximale Abstand eines Wellenberges oder -tals zur Nulllinie ist. Die Amplitude ist maßgeblich fur ¨ die Lautst¨arke bei Audiosignalen verantwortlich. Fur ¨ ein visuelles Signal bestimmt die Amplitude den Kontrast des sinusoidalen Signals. In Abbildung 11.2 sind zwei Signale mit gleicher Frequenz, aber unterschiedlicher Amplitude dargestellt. In Abbildung 11.2(a) ist die Amplitude geringer als in Abbildung 11.2(b). Betrachten wir auch hier das jeweils zugehori¨ ge Zeilenprofil, so erkennen wir deutlich den Unterschied zwischen der flachen Sinuskurve mit wenig Kontrast (11.2(a)) und der im Vergleich dazu hoheren ¨ Sinuskurve mit großerem ¨ Kontrast (11.2(b)).
(a)
(b)
Abbildung 11.2: Zwei Sinusschwingungen mit gleicher Frequenz und unterschiedlicher Amplitude – niedrig in (a) und hoch in (b)
Ein weiterer wesentlicher Parameter einer Frequenz ist ihre Phase. Die Sinusfunktion ist – wie wir alle wissen – eine Winkel- bzw. Kreisfunktion. L¨asst man den Wert, fur ¨ den der Sinus berechnet werden soll, kontinuierlich wachsen, so w¨achst ¨ zun¨achst auch der resultierende Funktionswert. Uberschreitet man dabei die 90 o π o ( 2 ), so vermindert sich der Funktionswert, bis die 180 (π ) wiederum uberschrit¨ 3π o ten werden. Ab hier w¨achst der Funktionswert bis 270 ( 2 ) und f¨allt danach wieder ab bis 360 o (2π ). Eine Phasenverschiebung um π2 macht sich dadurch im Grauwertbild bemerkbar, dass die Sinuskurve zun¨achst negativ wird. Das wird deutlich, wenn die beiden Zeilenprofile in Abbildung 11.3 miteinander verglichen werden. In Abbildung 11.3(b) geht das Zeilenprofil zun¨achst nach unten. Es l¨asst sich das Verhalten der Cosinusfunktion beobachten. Im Vergleich dazu betrachten
144
11 Fouriertransformation
wir das Zeilenprofil in Abbildung 11.3(a). Hierbei ist das Signal nicht phasenverschoben und die Sinuskurve nimmt den normal charakteristischen Verlauf: die Werte (und somit die Grauwert) steigen zun¨achst.
(a)
(b)
Abbildung 11.3: Zwei Sinusschwingungen mit gleicher Frequenz und unterschiedlicher Phase – (b) ist gegenuber ¨ (a) um π2 in der Phase verschoben
Alle periodischen Signale lassen sich durch eine Vielzahl sinusoidaler Frequenzen darstellen. J.B.J. Fourier hat dieses Prinzip als Erster formuliert (vgl. Hubscher ¨ und Szapanski (1981)). Es l¨asst sich relativ einfach beweisen“. Betrachten wir da” zu die folgende Abbildung 11.4: Werden zu einer Grundschwingung (blaue Kurve), die der Frequenz einer korrespondierenden Rechteckschwingung entspricht, die dargestellten Oberschwingungen (grune ¨ und rote Kurve) addiert (d.h. uber¨ lagert), dann l¨asst sich die angedeutete Rechteckform (lila Kurve) schon gut er¨ kennen. Uberlagert man weitere Schwingungen mit geringerer Amplitude und ¨ hoherer ¨ Frequenz, dann l¨asst sich die Steilheit der Uberg¨ ange (Kanten) noch verbessern und die Rechteckform noch weiter ann¨ahern. ¨ Durch Uberlagerung der drei Signale in Abbildung 11.1 l¨asst sich quasi das entsprechende Summensignal bilden. In Abbildung 11.5 ist der Sachverhalt der Signaluberlagerung ¨ nochmals bildhaft dargestellt. Das resultierende Signal korrespondiert mit der lila Kurve aus Abbildung 11.4 bzw. mit der Gleichung 11.1. Etwas formaler: Die blaue Kurve werde durch s 1 ( x) = sin( x), die rote Kurve durch s2 ( x) = 13 sin (3x) und die grune ¨ Kurve durch s 3 ( x) = 15 sin (5x) charakte risiert. Werden die Kurven addiert, dann ist das Resultat die lila Kurve s ( x). Man
145
¨ Abbildung 11.4: Uberlagerungen von drei vertikalen Sinuswellen aus der Abbildung 11.1. Diese Abbildung befindet sich auch auf der beiliegenden CD-ROM im Verzeichnis Abbildungen
¨ Abbildung 11.5: Uberlagerungen von drei Sinusschwingungen aus der Abbildung 11.1
spricht auch von der Addition der Grundschwingung (s 1 ( x)) mit den harmonischen Oberschwingungen (s2 ( x) und s3 ( x)). Das Ergebnis ist das Summensignal s ( x):
s ( x) = s1 ( x) + s2 ( x) + s3 ( x) =
3
1 sin(2π (2n − 1) x) 2n −1 n=1
∑
(11.1)
Aus der Mathematik ist bekannt, dass durch Reihenentwicklung Werte numerisch angen¨ahert werden konnen ¨ (Stichwort: Taylor’Reihe). Soll das angedeutete Recht-
146
11 Fouriertransformation
ecksignal aus Abbildung 11.4 weiter und damit genauer approximiert werden, so muss die Summation (vgl. Gleichung 11.1) fur ¨ n → ∞ uber ¨ alle Signalkomponen¨ zur so genannten Fourierreihe. Fur ¨ das Beispiel aus ten sn ( x) erfolgen. Das fuhrt Abbildung 11.4 und die obere Begrenzung M = 3 ergibt sich das Signal s( x) wie folgt: s( x) =
1 2π (2n − 1) x 1 sin( ), mitT = . 2n − 1 T f n=1
M
M
∑ sn ( x) = ∑
n=1
(11.2)
T ist dabei die Periodenl¨ange. Mit obiger Gleichung kann nun ein Rechtecksignal (ohne Phasenverschiebung) angen¨ahert werden. Dabei bestimmt die Anzahl M der Oberschwingungen die Genauigkeit der Ann¨aherung. Bei der Bildung der Reihe wird immer vorausgesetzt, dass es sich bei der Funktion s( x) um eine periodische Funktion handelt. Soll eine allgemeine Funktion a( x) betrachtet werden, dann treten neben den Sinusschwingungen auch Cosinusschwingungen aufgrund von Phasenverschiebungen auf (vgl. Abbildung 11.3(b)). Unter Berucksich¨ tigung einer Phasenverschiebung l¨asst sich die Fourierreihe dann wie folgt formulieren: ∞ a a( x) = 0 + ∑ an cos 2 n=1
2π nx T
+
∞
∑ bn sin
n=1
2π nx T
.
(11.3)
Dabei ist a20 quasi ein Offset (s.o. Nulllinie), der die (Grund-)Helligkeit des Bildes ¨ und unter bestimmt. Wenn a20 = 0 ist, dann integriert sich die Fl¨ache, die uber der Offsetlinie liegt, im periodischen Signal zu Null. T ist die Periodenl¨ange mit f x0 = T1 . an und bn sind die so genannten Fourierkoeffizienten, die die Amplituden der Cosinus- bzw. Sinusfunktionen darstellen. Sie berechnen sich zu: T
2 an = T
2
s( x) cos
− T2
bzw.
2π nx T
T
2 bn = T
2
s( x) sin
− T2
dx
2π nx T
n = 0, 1, 2, 3, . . .
mit
(11.4)
dx
mit
n = 1, 2, 3, . . .
(11.5)
Der Vergleich zwischen der Fourierreihe und -transformation wird erleichtert, indem man die Schreibweise der komplexen Zahlen verwendet. Dabei l¨asst sie eine periodische Ortsfunktion s( x) in komplexer Schreibweise als Fourierreihe in Exponentialform wie folgt formulieren: s( x) =
2π n c exp j x ∑ n T n =−∞ ∞
(11.6)
11.1 1D-Fouriertransformation in komplexer Notation
147
T ist dabei wieder die Periodenl¨ange. c n sind die Koeffizienten und in der Regel komplexe Zahlen. Es besteht folgender Zusammenhang zwischen den komplexen Koeffizienten cn und den Koeffizienten der reellen Fourierreihe a n bzw. bn : cn = und der Realteil bzw. der Imagin¨arteil
1 ( an − jbn ) 2
(11.7)
an = 2c n
(11.8)
bn = −2c n .
(11.9)
Der Betrag |c n | und die Phase φn ergeben sich zu:
|cn | =
1 2
a2n + b2n
φn = − arctan
bzw.
bn an
(11.10)
sowie die komplexen Fourierkoeffizienten cn : T
1 cn = T
2 − T2
2π n x s( x) exp − j T
mit
n = 0, + − 1, + − 2, + − 3, . . . (11.11)
11.1 1D-Fouriertransformation in komplexer Notation Es soll im Folgenden nicht mehr detailliert Gegenstand dieses Kapitels sein, wie der Zusammenhang zwischen der diskreten und der kontinuierlichen Fouriertransformation ist. Es sei an dieser Stelle lediglich angemerkt, dass mathematisch Umformungen vollzogen werden mussen, ¨ damit vom kontinuierlichen auf das diskrete Spektrum ubergegangen ¨ werden kann. Im Einzelnen sind dies: S( f x )d f x → cn
→∑
n T Mittels der diskreten Fourierreihe konnen ¨ nur periodische Signale behandelt werden. Mittels der Fouriertransformation konnen ¨ quasi beliebige nichtperiodische Signale behandelt werden. fx → n fT =
148
11 Fouriertransformation
Fur ¨ ein eindimensionales Signal l¨asst sich das Ortsfrequenzspektrum S( f x ) mittels des folgenden Integrals ermitteln S( f x ) =
∞
s( x) exp [− j2π f x x] dx
(11.12)
x =−∞
Dies ist die 1D-Fouriertransformation. Die Berechnung der Ortsfunktion s( x) aus dem Ortsfrequenzspektrum erfolgt mittels des folgenden Integrals, der inversen Fouriertransformation: s( x) =
∞
S( f x ) exp [ j2π f x x] d f x
(11.13)
x =−∞
Die diskrete Faltung haben wir bereits anhand der Rauschminderung in Abschnitt 4.2.2 auf den Seiten 45f kennen gelernt. Im Kontinuierlichen spricht man an dieser Stelle vom Faltungsintegral f ( x)zweier Funktionen s( x) und h( x): ∞
f ( x) =
s(ζ )h( x − ζ )dζ .
(11.14)
ζ =−∞
Diese Beziehung l¨asst sich in der Literatur auch mit folgender Notation finden s( x) ∗ h( x). Dabei wird ”∗” als Faltungsoperator bezeichnet. Fur ¨ einen tieferen Einblick sei an dieser Stelle auf Brigham (1982) verwiesen. Wird eine Funktion mit einer Diracfunktion2 δ ( x) gefaltet, so ist obige Beziehung (Gleichung 11.14) wie folgt formuliert: f ( x) =
∞
s(ζ )δ ( x − ζ )dζ = s(ζ ),
(11.15)
ζ =−∞
da die Diracfunktion an ihrer Abtaststelle ∞ sonst 0 ist. Man spricht auch von Diracimpulsen. Die Gleichung 11.15 l¨asst sich dahingehend interpretieren, dass die Faltung eines Signals mit der Diracfunktion wieder das Signal ergibt. Die Analogie fur ¨ den Ortsbereich ist, dass jedes Pixel quasi eine Abtaststelle fur ¨ das Bildsignal – also das Bild – darstellt. Damit konnen ¨ wir den Zusammenhang zwischen dem Faltungsintegral und der zugehorigen ¨ Fouriertransformierten im Faltungstheorem zusammenfassen: Eine Faltung im Ortsbereich entspricht einer Multiplikation im Ortsfrequenzbereich. Also fur ¨ den 1D-Fall: Die Diracfunktion dient zum Abtasten eines Signals. An der Abtaststelle ist sie mit ∞ definiert und sonst mit Null. Das bedeutet, dass an der jeweiligen Abtaststelle der Wert des abgetasteten Signals anliegt. 2
11.2 2D-Fouriertransformation
149
s( x) ∗ h( x) ◦−• S( f x ) H ( f x ).
(11.16)
¨ den Zusammenhang einer Funktion und ihrer FouriertransDabei steht ◦−• fur formierten (auch: Fouriertransformationspaar).
11.2 2D-Fouriertransformation ¨ Die n¨achste Uberlegung, die wir anstellen wollen, bevor wir uns mit der Darstellung von Bild im Frequenzbereich besch¨aftigen, ist die Erweiterung auf 2D. Die Bilder, die wir betrachten, sind in der Regel zweidimensional, und somit muss auch die Fouriertransformation zweidimensional angewendet werden konnen. ¨ Wir erweitern also das eindimensionale Signal s( x) um eine Ortskoordinate und kommen so zur zweidimensionalen Ortsfunktion s( x, y), die dann konsequenterweise zweidimensionale Fouriertransformation lautet: S( f x , f y ) =
∞ ∞
s( x, y) exp − j2π ( f x x + f y y) dxdy.
(11.17)
−∞ −∞
Entsprechend kann die zweidimensionale inverse Fouriertransformation wie folgt formuliert werden: s( x, y) =
∞ ∞
S( f x , f y ) exp j2π ( f x x + f y y) d f x d f y
(11.18)
−∞ −∞
Die korrespondierenden Fouriertransformationspaare (s( x, y) und S( f x , f y )) werden oftmals auch in der Kurzschreibweise s( x, y)◦=• S( f x, f y ) notiert. Die Ortsfunktion ist in der Regel eine reellwertige und die Ortsfrequenzfunktion eine komplexwertige Funktion. Letztere schreibt man auch in der folgenden Form: S( f x , f y ) = { S( f x , f y )} + j{ S( f x , f y )}.
(11.19)
Das Betragsspektrum | S( f x , f y )| (oder auch: Amplitudenspektrum) ergibt sich zu: | S( f x , f y )| = { S( f x , f y )}2 + { S( f x , f y )}2 . (11.20) Das auch oftmals verwendete Powerspektrum P( f x , f y ) (oder auch Leistungsspektrum) ist das Quadrat des Amplitudenspektrums, also: P( f x , f y ) = | S( f x , f y )|2 .
(11.21)
150
11 Fouriertransformation
Das Phasenspektrum φ( f x , f y ) berechnet sich zu: { S( f x , f y )} φ( f x , f y ) = arctan { S( f x , f y )}
(11.22)
¨ Erinnern wir uns, was mathematisch umgeformt werden musste, damit ein Ubergang vom Kontinuierlichen zum Diskreten vollzogen werden konnte (s. S. 147). Die Integrale bei der Fouriertransformation werden bei der DFT zu Summen. Das Signal liegt zu diskreten, a¨ quidistanten Zeitpunkten vor und hat eine endliche L¨ange. Das Spektrum wird nur fur ¨ diskrete Frequenzen berechnet. An dieser Stelle sei auf das notwendige Abtasten einer diskreten Funktion mittels Diracimpulsen auf Fritzsche (1984) bzw. Pratt (1978) verwiesen. Das sind genau die oben erw¨ahnten diskreten, a¨ quidistanten Zeitpunkte. Demnach konnen ¨ wir die zwei¨ ein diskretes Bild dimensionale diskrete Fouriertransformation Sd ( f x , f y ) (DFT) fur s( x, y) mit M Spalten und N Zeilen im Ortsbereich wie folgt formulieren: Sd ( f x , f y ) =
M−1 N −1
∑ ∑
x=0 y=0
s( x, y) exp − j2π
y fy x fx + M N
(11.23)
Die zweidimensionale inverse diskrete Fouriertransfromation (IDFT) berechnet sich zu: s( x, y) =
1 MN
y fy x fx S ( f , f ) = exp j2 π + ∑ d x y M N f =0
M−1 N −1
∑
f x =0
(11.24)
y
s( x, y) ist dabei ein diskretes Bild respektive eine Funktion, die sich periodisch uber ¨ die Zeilen und Spalten fortsetzt. Eine wesentliche Eigenschaft der DFT ist die so genannte Separierbarkeit. Sie erlaubt numerisch die DFT durch die FFT (Fast Fourier Transform) in N log N Zeit zu berechnen (Stootman (2001)). Zum Thema FFT sei an dieser Stelle zum Beispiel auf Wahl (1989) verwiesen. Bevor wir zu den moglichen ¨ Interpretationen der Frequenz-, Power-, Phasen- bzw. Amplitudenspektren kommen, mussen ¨ wir uns mit der ublichen ¨ Darstellung derselben besch¨aftigen. Erst dies erlaubt uns die Deutung. Ein Bild hat typischerweise links oben (oder auch links unten) seinen Ursprung (0, 0). Wie bereits erw¨ahnt, handelt es sich um diskrete Abtastsignale einer kontinuierlichen Funktion. Deswegen muss das Abtasttheorem (oder auch: Nyquist-Shannon-Abtasttheorem oder nur Shannon-Abtasttheorem) zur Interpretation bzw. Darstellung Berucksichtigung ¨ finden. Das Nyquist-Shannonsche Abtasttheorem (benannt nach Nyquist (1928) bzw. Shannon (1949)), besagt, dass ein kontinuierliches Signal mit einer Maximalfrequenz f max mit einer Frequenz großer ¨ als 2 · f max abgetastet werden muss, damit
11.3 Darstellung von Bildern im Ortsfrequenzbereich
151
aus dem so erhaltenen zeitdiskreten Signal das Ursprungssignal ohne Informationsverlust wieder rekonstruiert werden kann.3 Umgekehrt l¨asst sich auch sagen, dass bei einer vorgegebenen Abtastfrequenz f s lediglich Signale mit Frequenzen f 2s darstellbar sind. Ein Beispiel: Eine Bildzeile mit 200 Bildpunkten muss mit mindestens 400 Stutz¨ stellen (Diracimpulsen) abgetastet werden, damit die Bildzeile korrekt rekonstruiert werden kann. Werden weniger als 400 Stutzstellen ¨ zur Abtastung verwendet, ¨ kann dies zum so genannten Aliasing fuhren. ¨ Das tritt des Ofteren bei a¨ lteren TVSendungen auf, wenn zum Beispiel die Personen kleingemusterte (karierte) Stoffe tragen. Im Fernsehbild entsteht dadurch eine Art Flimmern.
11.3 Darstellung von Bildern im Ortsfrequenzbereich Die Darstellung von Bildern im Ortsfrequenzbereich wird ublicherweise ¨ wie folgt vorgenommen: Gehen wir von einer vorgegebenen Abtastfrequenz f s aus, so las¨ die x-Richtung mit f sx als sen sich die maximalen Ortsfrequenzen f x = f sx 2 fur Grenzfrequenz in x-Richtung und f y = f sy 2 fur ¨ die y-Richtung mit f sy als Grenzfrequenz in y-Richtung bestimmen. Werden die Abtastfrequenzen mit den korrespondierenden Grenzfrequenzen norf
f
miert zu f sxx 0.5 bzw. f syy 0.5, so kommt man zur Darstellung des normierten Ortsfrequenzbereiches, wie er in Abbildung 11.6 zu sehen ist. f f
y sy
( 0 ,0 )
f f
x sx
Abbildung 11.6: Darstellung des Ortsfrequenzbereiches
3
In der Praxis bedeutet dies, dass man vor der Digitalisierung die maximale Frequenz kennen oder herausfinden muss und dann das Signal mit mindestens der doppelten Frequenz abgetastet werden muss, damit das Signal (nahezu) fehlerfrei digitalisiert werden kann.
152
11 Fouriertransformation
Hierbei ist anzumerken, dass niedrige Frequenzen einen Eintrag in der N¨ahe das Ursprungs haben. Je hoher ¨ die Frequenz, desto weiter ist sie vom Ursprung entfernt. Auf der Grundlage dieses Wissens konnen ¨ Filter im Ortsfrequenzraum relativ einfach realisiert werden. Erinnern wir uns an die Aussage, dass eine Faltung im Ortsbereich einer Multiplikation im Ortsfrequenzbereich entspricht, so konnen ¨ durch eine Multiplikation mit 0 einfach einzelne Frequenzen gesperrt und dementsprechend durch eine Multiplikation mit 1 Frequenzen durchgelassen werden. Bei einem so genannten Tiefpass sperrt man zum Beispiel hohe Frequenzen. Das Ergebnis eines Tiefpass ist ein gegl¨attetes Bild, was bedeutet, dass ein Tiefpass im Ortsfrequenzraum einem Rauschminderungsfilter im Ortsraum entspricht. Bei einem Hochpass sperrt man hingegen die niedrigen Frequenzen. Nach der Rucktransformation ¨ sind die Diskontinuit¨aten noch im Signal vorhanden – also werden die hochfrequenten Kanten durchgelassen. Ein Bandpass l¨asst nur einen bestimmten Bereich von Frequenzen durch. Alle Frequenzen, die unterhalb bzw. oberhalb des Bandes liegen, werden gesperrt. Eine sehr schon ¨ am Powerspektrum sichtbare Eigenschaft der Fouriertransformation ist die Linearit¨at. Betrachten wir zwei Bilder s 1 ( x, y) und s 2 ( x, y) mit den korrespondierenden Fouriertransformierten S1 ( f x , f y ) und S2 ( f x , f y ), dann gilt das folgende Prinzip: s1 + s2 hat die Fouriertransformierte S 1 + S2 , also: s1 ( x, y) + s 2 ( x, y)◦=• S 1( f x , f y ) + S2 ( f x , f y ).
(11.25)
In der Abbildung 11.7 ist dieses auch Superpositionsprinzip genannte Prinzip anschaulich dargestellt. Eine weitere Eigenschaft der Fouriertransformation ist ihr Verhalten bei Rotation (siehe Abschnitt 4.3). Wird die Ortsfunktion um einen bestimmten Winkel ϕ gedreht, so entspricht das einer Drehung der Frequenzfunktion im Ortsfrequenzbereich um den gleichen Winkel ϕ: s( x cos ϕ + y sin ϕ, − x sin ϕ + y cos ϕ)◦=• S( f x cos ϕ + f y sin ϕ, − f x sin ϕ + f y cos ϕ). (11.26) Dieses Verhalten wird in Abbildung 11.8 verdeutlicht. Die n¨achste Eigenschaft, die wir kurz besprechen wollen, ist das Verhalten bei einer Verschiebung. Erfolgt im Ortsbereich eine Translation der Ortsfunktion, so wird das nur im Phasenspektrum sichtbar. Auf das Powerspektrum hat eine Verschiebung hingegen keine Auswirkung. Das l¨asst sich auch durch eine einfache ¨ Uberlegung belegen. Und zwar bleiben die Frequenzen im Bild ja erhalten, die eine bestimmte Struktur auszeichnen. Lediglich die Position dieser Struktur im Bild hat sich ja ge¨andert. Dieses Verschieben hat aber keinen Einfluss auf beispielsweise die Amplitude des Signals. In Abbildung 11.9 ist dieses Verhalten wiederum an Ortsbildern und korrespondierenden Powerspektren veranschaulicht.
11.3 Darstellung von Bildern im Ortsfrequenzbereich
153
(a)
(b)
(c)
(d)
(e)
(f)
Abbildung 11.7: Superpositionsprinzip der FT. In (a) und (c) zwei Ortsbilder mit ihren korrespondierenden Powerspektren in (b) und (d). In (e) Summe von (a) und (c) und entsprechend in (f) die Summe von (b) und (d)
154
11 Fouriertransformation
(a)
(b)
(c)
(d)
Abbildung 11.8: Rotation der FT. Ortsbild in (a) und in (c) das um einen Winkel ϕ rotierte Ortsbild. Die korrespondierenden Powerspektren sind in (b) und (d) abgebildet
11.4 Zusammenfassung Die Fouriertransformation ist ein nutzliches ¨ Hilfsmittel zur Bestimmung von Frequenzanteilen eines Bildsignals. Es konnen ¨ sehr selektiv bestimmte Frequenzen untersucht werden. Ebenso konnen ¨ bestimmte Frequenzen gesperrt bzw. durchgelassen werden, sodass beispielsweise ein gegl¨attetes Bild das Ergebnis ist. Weitere Moglichkeiten ¨ bieten sich bei selektiven Richtungsfiltern an. Hierbei werden im Ortsfrequenzraum dreieckformige ¨ Filter (durch Polygone) definiert, deren Spitze auf den Ursprung zeigt. Diese beiden in der Regel diametral gegenuber ¨ liegenden Dreiecke definieren so eine bevorzugte Richtung, die dann durchgelassen werden kann. Nach der Rucktransformation ¨ sind im Ortsbild nur die Strukturen vorhanden, die genau diese Vorzugsrichtung aufweisen. Die praktischen Einsatzgebiete der Fourieranalyse sind so vielf¨altig, dass an dieser Stelle nur auf einige wenige Applikationen hingewiesen werden soll. Sie wird
11.4 Zusammenfassung
155
6 0
(a)
(b)
6 0 (c)
(d)
Abbildung 11.9: Verschiebung der FT. Ortsbild in (a) und in (c) das translatierte Ortsbild. Die korrespondierenden Powerspektren sind in (b) und (d) abgebildet
u.a. zur thermographischen Analyse von Pflanzen eingesetzt (vgl. Kummerlen ¨ u. a. (1999)) sowie zur Analyse von pr¨ahistorischen Felsenmalereien (vgl. Edwards u. a. (1999)). ¨ Die korrespondierenden Ubungsaufgaben befinden sich im Anhang C.12.
Anhang A
Das O RASIS 3D -System O RASIS 3D ist eine Umgebung zur schnellen und einfachen Realisierung von prototypischen Losungen ¨ von Bildverarbeitungsproblemen. O RASIS3D basiert auf einer Filtergraphstruktur, um Bilddaten zu verarbeiten. Das Programm beinhaltet eine Bibliothek von Standard- und Nichtstandardfiltern, die als Knotenpunkte im Graphen eingesetzt werden konnen. ¨ Der Benutzer kann weiterhin eigene Filter entwerfen und an O RASIS 3D dynamisch anbinden. Mit Hilfe der Filtergraphen ist es moglich, ¨ komplexe und nutzerorientierte Analyseb¨aume zusammenzubauen. Als Eingabemoglichkeit ¨ fur ¨ Bilddaten steht eine Twain-Schnittstelle zur Verfugung. ¨ Eine Anbindung an eine propriet¨are 3D-Laser-Kamera mit Hilfe einer Corba-Schnittstelle besteht auch. Naturlich ¨ konnen ¨ auch Bilder von der Festplatte/Diskette geladen werden. Diese Einfuhrung ¨ ist quasi als Starthilfe“ gedacht und wird die folgenden Aspek” te von O RASIS3D behandeln: Laden von Bildern und Projekten, Setzen von Projekt- und Datenpfaden, Erstellen von Filtergraphen, Einstellen von Filterparametern und Manipulieren von Bildern, Einsetzen von Filtern auf die Bilddaten, Vorbereiten der Entwicklungsumgebung, Editieren und Einsetzen der eigenen Filter und ¨ Benutzen vom Integrator Schnittstellengenerierung
158
A Das O RASIS3D -System
¨ A.1 Uberblick uber ¨ die O RASIS 3D -Arbeitsumgebung Nach dem Laden des Programms konnen ¨ Sie vier Bereiche der O RASIS 3D ¨ Arbeitsumgebung erkennen. In Abbildung A.1 ist ein Uberblick uber ¨ die O RASIS 3D -Arbeitsumgebung abgebildet. Im Bereich (1) konnen ¨ Datenpfade, die in der Regel die Bilder enthalten, Projekte oder Operatorengruppen uber ¨ die Tabreiter ausgew¨ahlt werden. Der Bereich (2) ermoglicht ¨ eine spezielle Auswahl einzelner Operatoren, Bilder oder Projekte. Die zu den Projekten gehorigen ¨ Filtergraphen werden im Projektbereich (3) dargestellt. Bereich (4) ist die Anzeigekomponente (viewer) und dient der Visualisierung der Daten. Die Anzeigekomponente kann nicht nur Bilder, sondern auch Textdateien visualisieren.
¨ Abbildung A.1: Uberblick uber ¨ die O RASIS 3D -Arbeitsumgebung
Bilder konnen ¨ zum einen uber ¨ den Dateidialog File->Load Image“ (siehe Ab” bildung A.2 oder uber ¨ die Auswahl eines der im Datenpfad (Datenreiter) bereits vorhandenen Bilder (siehe Abbildung A.3) geladen werden. Werden Bilder durch letztere Moglichkeit ¨ ausgew¨ahlt, dann konnen ¨ sie per drag and drop in den Projektbereich gezogen werden. Bevor man ein Bild per drag and drop in den Projektbereich zieht, wird es durch einen einfachen Klick mit der Maus auf den Dateinamen in einem kleinen Vorschaufenster, das sich direkt unter dem Datenpfadfenster befindet, visualisiert
¨ A.1 Uberblick uber ¨ die O RASIS 3D -Arbeitsumgebung
159
Abbildung A.2: Laden von Bildern mittels Dateidialog
(siehe Abbildung A.3). Wollen Sie einen neuen Datenpfad hinzufugen, ¨ mussen ¨ Sie den Datenreiter ausw¨ahlen. Anschließend sollte der Cursor (Mauszeiger) in das Feld bewegt werden. Wird dann die rechte Maustaste gedruckt, ¨ kann entweder ein neuer Pfad hinzugefugt ¨ (Add Path) oder ein bereits bestehender geloscht ¨ (Remove Path) werden. Nachdem ein Bild – entweder per Dateidialog oder per Datenreiter – dem Projektbereich hinzugefugt ¨ wurde, soll anschließend ein auf das Bild anzuwendender Operator dem Projektbereich ebenfalls hinzugefugt ¨ werden. Hierzu wird der Operatorenreiter ausgew¨ahlt. Im linken Fenster kann die Operatorengruppe ausgew¨ahlt werden und im zugehorigen ¨ rechten Fenster der spezielle Operator. In Abbildung A.4 ist dies fur ¨ die Operatorengruppe Gl¨attung“ und den speziellen ” Operator Median“ dargestellt. Der Operator wird analog zu den Bildern eben” falls per drag and drop in den Projektbereich gezogen. Wurde das durchgefuhrt, ¨ so verbindet sich automatisch der Operator mit dem gerade aktuellen Bild, und ein Graph entsteht. Die Ausgabe das Medianoperators ist wieder ein Bild ( Ausgabe” bild“ ). Im Viewer steht der Hinweis, dass das Objekt – also das Bild – durch den Operator noch nicht verarbeitet wurde. Im Projektbereich wird das Ausgabebild durch ein Dummy-Icon dargestellt. Um das Bild durch den Operator verarbeiten zu lassen, muss der Knopf ( ) ganz links im Projektbereich-Fenster gedruckt ¨ werden. Nach erfolgreicher Verarbeitung wird das Ergebnis sofort im Viewer visualisiert und das Ausgabebild-Icon
A Das O RASIS3D -System
160
Abbildung A.3: Laden von Bildern mittels Datenreiter
Abbildung A.4: Hinzufugen ¨ von Operatoren und dadurch Aufbau eines Graphen
hat sich entsprechend ver¨andert. Durch Doppelklick auf den jeweiligen Operator wird der zugehorige ¨ Parameter-
A.2 Anzeigekomponente
161
dialog geoffnet. ¨ In Abbildung A.5 ist der Parameterdialog fur ¨ den Medianoperator abgebildet. Die Informationen hinsichtlich der Eingabe und der Ausgabe konnen ¨ abgelesen werden. Hier kann auch der Name des Ausgabebildes innerhalb des Graphen ver¨andert werden. Das ist beispielsweise bei großeren ¨ und komplexeren Graphen sinnvoll, da in der Regel per Default immer der Name Ausgabebild“ bei den Operatoren eingestellt ist. Das kann zur Unubersichtlich¨ ” keit fuhren, ¨ wenn mit Hilfe des Viewers durch die Bilder gebl¨attert wird. Des Weiteren konnen ¨ die Parameter, die fur ¨ den jeweiligen Operator essentiell sind, eingestellt werden. In dem Fall des Medianoperators ist das die Operatorgroße. ¨ Die Operatorgroße ¨ wird durch eine ungerade Zahl angegeben. Dabei bedeutet 3 eine Operatorgroße ¨ von 3 × 3, 5 von 5 × 5 und so weiter.
Abbildung A.5: Parameterdialog von Operatoren
Zur Funktionsweise des Medianoperators sei an dieser Stelle auf den Abschnitt 4.2.2 verwiesen. Mit diesem einfachen Beispiel haben wir unseren ersten Filtergraphen aufgebaut und ein Bild verarbeitet. Der Graph respektive das Projekt kann uber ¨ den Dateidialog File->Save project as“ gespeichert werden. Zun¨achst ist es sinn” voll, Projekte in das O RASIS3D -Installationsunterverzeichnis Projekte“ zu spei” chern, da dieses bereits dem System automatisch bekannt ist. Geubte ¨ Nutzer konnen ¨ dann Projekte beliebig im Dateisystem speichern. Bevor wir uns im Abschnitt A.3 mit der Erstellung eigener Bildverarbeitungsfunktionalit¨at fur ¨ das O RASIS 3D -System befassen, wollen wir im folgenden Abschnitt A.2 die Anzeigekomponente etwas eingehender betrachten, da diese ein paar nutzliche ¨ Funktionen aufweist, die hilfreich sind, um Bilder und Verarbeitungsergebnisse genauer zu betrachten.
A.2 Anzeigekomponente Die Anzeigekomponente oder auch der Viewer des O RASIS 3D -Systems verfugt ¨ uber ¨ einige nutzliche ¨ und sinnvolle Hilfsmittel. Mit diesen Hilfsmitteln konnen ¨
162
A Das O RASIS3D -System
zum Beispiel Daten genauer betrachtet bzw. analysiert werden. Zeilen- und Spaltenprofil werden durch das S&W-Tabellen-Symbol“ aktiviert. In Abbildung A.6 ” sind ein Bild und die zugehorigen ¨ Profile dargestellt. Bei einem Farbbild werden sowohl fur ¨ die Spalte als auch fur ¨ die Zeile je drei unterschiedlich farbige Profile – jeweils fur ¨ den Rot-, Blau- und Grunanteil ¨ – visualisiert.
Abbildung A.6: O RASIS 3D Anzeigekomponente mit aktiviertem Zeilen- und Spaltenprofil
Um zwischen den Objekten im Graphen hin und her zu springen, benutzen Sie den Vorw¨arts- bzw. Ruckw¨ ¨ artsknopf. Um Ihre Bilder zu speichern, drucken ¨ Sie ¨ das Symbol mit der Diskette. Das Vergroßern ¨ funktioniert uber ¨ die Lupe. Uber einen Klick mit der linken Maustaste in das Bild vergroßert ¨ sich das Bild (zoom in) und mit der rechten Maustaste verkleinert es sich (zoom out). Der Pin bedeutet, dass sich durch Aktivierung die visualisierte Bildgroße ¨ nicht mehr a¨ ndert. Ist der Button aktiviert und es wird anschließend in das Bild gezoomt, dann erscheinen an den R¨andern automatisch Laufleisten, mit denen der Nutzer uber ¨ das Bild scrollen kann. Um die Falschfarbendarstellung (hoherer ¨ Kontrast) zu aktivieren, drucken ¨ Sie das Zielscheiben-Symbol. Das Symbol mit dem nach links gebogenen Pfeil ermoglicht ¨ eine Kopie des Bildes in einem zweiten Viewer. Das kann sinnvoll sein, wenn zwei (oder auch mehrere) Bilder nebeneinander stehend betrachtet werden sollen. Durch Aktivierung des Histogramm-Symbols“ erscheint ein neues Fenster mit ” dem zugehorigen ¨ Histogramm. Sollte es sich um ein Farbbild handeln, kann der
A.3 Funktionsentwicklung
163
Tabelle A.1: Auflistung der Symbole und korrespondierenden Funktionen des O RASIS 3D Viewers
Symbol
Funktion zweiter Viewer Bild in Zwischenablage kopieren Bild speichern Zum ersten Bild der Prozesskette springen Vorheriges Bild (in der Prozesskette) N¨achstes Bild (in der Prozesskette) Zum letzten Bild der Prozesskette springen Lupe (Bild vergroßern) ¨ Pin (Visualisierungsgroße ¨ einfrieren) Zoom fur ¨ alle Bilder auf gleiche Große ¨ festlegen Falschfarbendarstellung Zeilen- und Spaltenprofil Histogramm Textdokument bearbeiten Drucken
Farbkanal uber ¨ Radiobuttons ausgew¨ahlt werden. In Tabelle A.1 sind die einzelnen Symbole mit den korrespondierenden Funktionalit¨aten aufgelistet.
A.3 Funktionsentwicklung Aufgrund von historischen Gegebenheiten und Entscheidungen, die heutzutage leider nicht mehr nachvollziehbar sind, ist das O RASIS 3D -System sehr eng an den Borland C++ Builder und an ein Win32-Betriebssystem gebunden. Die Hauptentwicklungs-IDE ist Borland C++ Builder 5.0. Alle Versionen unterhalb 5.0 werden nicht unterstutzt. ¨ Die BCB 6.0 Version funktioniert ebenfalls allerdings mit Einschr¨ankungen im Debugger. Neuere Versionen konnten ¨ funktionieren, wurden aber noch nicht getestet. Die BCB-Versionen wurden unter Windows 2000
A Das O RASIS3D -System
164
und XP getestet. Windows ME ist nicht zu empfehlen. Im Folgenden wird zun¨achst das Set-Up der IDE und anschließend die Erstellung einer eigenen DLL erl¨autert.
A.3.1 IDE Set-Up Nach der Installation vom BCB und O RASIS 3D sollten Sie die notigen ¨ Einstellungen betreffend die Entwicklungsumgebung vornehmen (Pfade etc.). Kopieren Sie zuerst die Beispieldateien in ein Verzeichnis Ihrer Wahl (z.B. ..\Orasis3D\MyFilter). Die Beispieldateien beinhalten die Projektdatei (ExampleDLL.bpr), die Quellen (ExampleDLL.cpp bzw. ExamleDLL.h) und die autonom generierte Initialisierungsdatei (init.h). Zus¨atzlich gibt es einige Include- und Bibliotheksdateien, die notig ¨ sind, um eine Orasis-DLL zu generieren. Sie konnen ¨ diese in ..\Orasis3D\include und ..\Orasis3D\lib kopieren. Eine Datei wird per Doppelklick geoffnet. ¨ Nachdem das Projekt bzw. die Projektdatei (*.bpr) geoffnet ¨ wurde, sollte Folgendes (vgl. Abbildung A.7) sichtbar sein:
Abbildung A.7: BCB-IDE mit geoffneter ¨ .bpr-Datei
Jetzt sollten die korrekten Pfade fur ¨ die Bibliotheks- und Ausgabedateien eingestellt werden. Hierfur ¨ wird der Projektreiter aktiviert und der Menupunkt ¨ Optionen ((1) in Abbildung A.8) ausgew¨ahlt.
A.3 Funktionsentwicklung
165
Abbildung A.8: Einstellen der wesentlichen Pfade I
Anschließend wird der Verzeichnisreiter ausgew¨ahlt ((2) in Abbildung A.9). Dort konnen ¨ die entsprechenden Pfade eingegeben werden, die fur ¨ die Kompilierung des Projekts notig ¨ sind. Zuerst bitte den korrekten Includepfad zu den Headerdateien eingeben (oder durch Auswahl spezifizieren), welche mit dem Orasispaket mitgeliefert wurden ¨ die Bibliotheks(zum Beispiel ..\Orasis3D\include). Dieselbe Prozedur wird fur pfade durchgefuhrt. ¨ Dort liegen die Objektdateien, die fur ¨ die Kompilierung notig ¨ sind. Zuletzt sollte der Pfad fur ¨ die Ausgabe der DLL spezifiziert werden. Der Compiler wird dort die fertige DLL speichern. Eine sinnvolle Eingabe w¨are hierbei ..\Orasis3D\dlls. In diesem Verzeichnis sind bereits einige mitgelieferte DLLs vorhanden. Soll O RASIS3D direkt aus der IDE gestartet werden, dann sollte auch die Position der ausfuhrbaren ¨ O RASIS 3D -Datei angegeben werden. Im Rahmen der Entwicklungsprozesse ist es sinnvoll, auch dieses zu tun, da dadurch das Debuggen der eigenen DLLS erleichtert wird. Um die ausfuhrbare ¨ Datei zu w¨ahlen, muss das Startmenu¨ ((1) in Abbildung A.9) aktiviert werden. Danach im Parametermenu¨ die Lokaleinstellungen w¨ahlen und im Eingabeformular die Orasisdatei eintragen ((1) in Abbildung A.10). Jetzt ist die IDE eingestellt und das erste eigene Projekt kann entweder durch Klicken auf oder durch Drucken ¨ der Funktionstaste F9 erstellt werden.
A Das O RASIS3D -System
166
Abbildung A.9: Einstellen der wesentlichen Pfade II
Abbildung A.10: Spezifikation der ausfuhrbaren ¨ Datei
A.3.2 Erstellen einer ExampleDLL Zun¨achst wollen wir quasi Schritt fur ¨ Schritt durch den Quellcode der ExampleDLL, die mitgeliefert wird, gehen. Dabei werden wir uns nicht Zeile fur ¨ Zeile ansehen, sondern nur die wesentlichen Stellen des Quellcodes. Ziel soll die Erstellung der eigenen ExampleDLL sein. Im Allgemeinen wird davon ausgegangen, dass der geneigte Entwickler bereits Erfahrungen in der C/C++Programmierung sowie im Umgang mit einer IDE gemacht hat. Die eigene Beispielfunktion konnte ¨ z.B. so anfangen (vgl. auch den Quellcode in
A.3 Funktionsentwicklung
167
der mitgelieferten ExampleDLL): bool Example(TList *tl){ ... } Es ist der Name der Funktion Example zu sehen und ein Zeiger zu einem TList Konstrukt. TList (eine Liste von Zeigern) erlaubt O RASIS3D , der Funktion zu kommunizieren. In dem Beispielcode ist weiterhin folgende Funktion zu finden: ((TZI_Error*)tl->Last())->function = "Example"; Um eine Fehlerbehandlung zu ermoglichen, ¨ wird dort der Name der Funktion hinzugefugt. ¨ Sturzt ¨ sp¨ater wider Erwarten die Funktion ab, wird man wissen, dass genau diese nicht korrekt war. Die n¨achste Anweisung ist wichtig, wenn die Anzahl der Ein- bzw. Ausgabeobjekte ge¨andert werden soll: if (tl->Count != 4){ ((TZI_Error*)tl->Last())->errorcode = 1001; return false; } // if (tl->Count != 4){ Die Anzahl 4 bedeutet, dass vier Eintr¨age in der TList vorzufinden sind (oder auch sein sollen). Die Eintr¨age sind Eingabe- und Ausgabeobjekte der Funktion (bzw. Zeiger auf die entsprechenden Konstrukte). In dem mitgelieferten Beispiel haben wir ein Eingabebild und zwei Ausgaben (Bild und Text). So sollte allerdings das Maximum des Z¨ahlers 3 und nicht 4 betragen. Der letzte Eintrag ist ein Zeiger auf einen Fehlerhandler. Damit bekommen wir insgesamt vier Eintr¨age. Wenn also eine Funktion mit 2 Eingaben und 2 Ausgaben entwickelt werden soll, dann sollte die Obergrenze fur ¨ den Z¨ahler 4 + 1 = 5 betragen. Als N¨achstes ist die try-Anweisung wichtig. Diese Anweisung dient dem Abfangen der Fehler, die durch den Code verursacht werden konnten. ¨ Das Abfangen ist nutzlich, ¨ da dadurch das Hauptprogramm eine kontrollierte Fehlermeldung zuruckliefern ¨ kann. Die Integervariablen sind Indizes, um auf die Zeigerliste (TList) zugreifen zu konnen. ¨ Soll beispielsweise auf das zweite Element der TList zugegriffen werden, kann das durch TList* list[OutImageNr] geschehen. try { int InImageNr int OutImageNr int OutTextNr
= 0; = 1; = 2;
Wie man auf die Zeiger der speziellen Typen zugreifen kann, wird in der folgenden Anweisungsfolge deutlich:
168
A Das O RASIS3D -System
// Pointer of the Objects in the TList VisionImage* inImage = (VisionImage*)tl->Items[InImageNr]; VisionImage* outImage = (VisionImage*)tl->Items[OutImageNr]; Txt *tx = (Txt*)tl->Items[OutTextNr]; Um einen Zeiger auf einen bestimmten Typ zu erhalten, kann folgende Anweisung verwendet werden: BYTE* outImageData = (BYTE*)outImage->setType(TYPE_8BITGRAY); outImageData ist der Zeiger auf das Feld. Der Typ von diesem Datenfeld wird vom Typ TYPE 8BITGRAY sein, was bedeutet, dass es sich um eine 8-BitRepr¨asentation des Bildes handelt. Wenn die Funktion nur bestimmte Bildtypen unterstutzt ¨ (hier TYPE 8BITGRAY), kann das durch einfaches Testen, indem Sie folgende Anweisungen eintippen, ermoglicht ¨ werden: // This function allows only 8-bit-grayimages if (inImage->getType()!= TYPE_8BITGRAY){ ((TZI_Error*)tl->Last())->errorcode = 1031; return false; } Ist das Bildformat nicht korrekt, bekommt der Benutzer die entsprechende Meldung. Ein for-Anweisungsblock folgt. Dort kann nun endlich der eigene Code implementiert werden. In diesem Beispiel kopieren wir das Bild von inImageData nach outImageData, ohne irgendwas zu a¨ ndern. Zus¨atzlich fullen ¨ wir die zweite Ausgabe (Textdatei) mit der Gesamtzahl der Pixel im Bild.
A.3.3 Schnittstellen erstellen mit dem Integrator“ ” Zus¨atzlich zu der gesamten O RASIS 3D -Distribution wird ein kleines Programm – der Integrator – mitgeliefert. Dieses sollte unbedingt verwendet werden, damit O RASIS 3D automatisch und ohne Fehler neue DLLs und somit neue Funktionalit¨at erkennt. Der Integrator erzeugt eine Schnittstelle, die die eigene Funktion beschreibt, sodass O RASIS 3D damit arbeiten kann. Nachdem der Integrator gestartet wurde, sollte der Pfad zu den eigenen Sourcen spezifiziert werden. Dieses Werkzeug wird sp¨ater dort die Schnittstelle speichern. In der folgenden Abbildung A.11 ist die Oberfl¨ache des Integrators zu sehen. Um den Pfad einstellen zu konnen, ¨ muss die Datei ((1) in Abbildung A.11) ausgew¨ahlt werden. Es erscheint ein Selektionsformular (rechts), wo der entsprechende Pfad selektiert werden kann. Ist dieser Pfad spezifiziert, kann im n¨achsten Schritt mit der Spezifikation der Schnittstelle begonnen werden. Das erreicht man,
A.3 Funktionsentwicklung
169
Abbildung A.11: Oberfl¨ache des Integrators
indem der Button Funktion Hinzufugen ¨ ((2) in der Abbildung A.11) gedruckt ¨ wird. Es erscheint ein Formular, in dem die Daten, die die Funktion beschreiben, einzugeben sind. In Abbildung A.12 ist das Formular zu sehen. Bei (1.) wird der Name der Funktion eingegeben. Dieser Name entspricht dem Namen im eigenen Quellcode. Bei (2.) wird der Name eingegeben, der innerhalb der O RASIS 3D -Umgebung erscheinen soll. (3.) repr¨asentiert die Operatorgruppe, in die O RASIS 3D die Funktion einordnen wird. (4.) dient den Kommentaren. Durch (5.) kann ein Icon ausgew¨ahlt werden, das der Funktion ein Gesicht innerhalb der O RASIS 3D Umgebung verleiht. Sind die funf ¨ Punkte ausgefullt, ¨ so geht es mit dem n¨achsten Reiter ((6) in Abbildung A.12) weiter. In dem Ein-/Ausgabebereich konnen ¨ Ein- und Ausgabeobjekte zur eigenen Funktion hinzugefugt ¨ werden, die die Funktion verarbeiten kann. In diesem Beispiel kann die Funktion mit einem Bild (Eingabe), noch einem Bild (Ausgabe) und ei¨ das Manem Text(Ausgabe) umgehen. Diese Informationen dienen O RASIS 3D fur nagement des Filtergraphen, wenn neue Objekte hinzugefugt ¨ werden. Um ein neues Objekt hinzuzufugen, ¨ muss der Button hinzufugen ¨ verwendet werden. Mit einer Selektierbox ((2) in Abbildung A.13) wird der Typ des Objekts festgelegt. Fur ¨ Ausgabeobjekte ((3) in Abbildung A.13) genugt ¨ dieselbe Prozedur. Es geht weiter mit dem n¨achsten Reiter ((1) in Abbildung A.13). Der Parameterreiter erlaubt, die Parameter fur ¨ die Funktion festzulegen. Die Parameter werden sp¨ater, w¨ahrend O RASIS 3D l¨auft, zug¨anglich sein. Wenn zum Beispiel jetzt ein Parameter definiert wird, kann diesem sp¨ater beim Ausfuhren ¨ des Filtergraphen ein Wert zugewiesen werden. Ist dieser Parameter unter O RASIS 3D eingegeben worden, kann die Funktion auf diesen zugreifen. Einige spezielle Parameter (GUI-Parameter) halten w¨ahrend der Ausfuhrung ¨ des
170
A Das O RASIS3D -System
Abbildung A.12: Dateneingabe zur Schnittstellenspezifikation fur ¨ den Menu-Punkt ¨ Allgemein im Integrator
Abbildung A.13: Dateneingabe zur Schnittstellenspezifikation fur ¨ den Menu-Punkt ¨ Input/Output im Integrator
Graphen an und erfordern interaktiv die Eingabe durch den Nutzer. Alle anderen Parameter sollten vor dem Ausfuhren ¨ bereits korrekt – als Defaultwerte –
A.3 Funktionsentwicklung
171
spezifiziert sein. Um einen richtigen Typ des Parameters festzulegen, sollte die Selektierbox ((2) in der Abbildung A.14) verwendet werden. Sind alle Eingaben gemacht, muss mit Eintragen“ best¨atigt werden, damit die Einstellungen auch ” ubernommen ¨ werden ((3) in der Abbildung A.14). Sollen zus¨atzliche Fehlermeldungen hinzugefugt ¨ werden, kann dies durch Auswahl des Fehlerreiters ((1) in der Abbildung A.14) geschehen.
Abbildung A.14: Dateneingabe zur Schnittstellenspezifikation fur ¨ den Menu-Punkt ¨ Parameter im Integrator
Wollen Sie keine neuen Fehlermeldungen hinzufugen, ¨ konnen ¨ Sie diese Sektion einfach uberspringen. ¨ Um eine neue Fehlermeldung hinzuzufugen, ¨ muss der Button hinzufugen ¨ verwendet werden ((1) in der Abbildung A.15). In dem Textfeld ((2) in der Abbildung A.15) kann durch Eingabe von Text der Inhalt der neuen Fehlermeldung eingegeben werden. Insgesamt konnen ¨ 1000 (0-999) verschiedene ¨ kann Fehler definiert werden. Um auf diese unter O RASIS 3D zugreifen zu konnen, folgender Quellcode verwendet werden: ((TZI_Error*)tl->Last())->errorcode = 1001; return false Durch Drucken ¨ des Buttons Erstelle ini.h Funktionscode ((1) in der Abbildung A.16) werden die vorgenommenen Einstellungen ubernommen. ¨ Die Arbeit mit dem Intergrator ist damit zu Ende. Als Letztes muss noch die Headerdatei (z.B. MyFilter.h) angepasst und die Deklaration Ihrer Funktion dort mittels // declaration of your DLL´s __declspec(dllexport) bool Example(TList *tl);
172
A Das O RASIS3D -System
Abbildung A.15: Dateneingabe zur Schnittstellenspezifikation fur ¨ den Menu-Punkt ¨ Fehler im Integrator
bekannt gemacht werden.
Abbildung A.16: Dateneingabe zur Schnittstellenspezifikation im Integrator. Erstellung der korrespondierenden init.h-Datei
Anhang B
Ausgew¨ahlte Funktionen im O RASIS 3D -System Gegenstand dieses Kapitels ist die Beschreibung ausgew¨ahlter Bildverarbeitungsfunktionen in O RASIS3D . Die Beschreibungen sind wie folgt aufgebaut und bedeuten im Einzelnen: DLL, in der der Objektcode steht DLL-Name: Funktionsname: Name der Funktion, wie sie in O RASIS 3D sichtbar ist Beschreibung: Kommentar, wie er in O RASIS3D sichtbar ist Unterstutzte ¨ Bild- Information, auf welche Bildtypen die Funktypen: tion definiert ist (z.B. 8-Bit) Eingaben: Was erwartet die Funktion als Eingabe (z.B. ein Bild)? Ausgaben: Was liefert die Funktion als Eingabe (z.B. ein Bild)? Parameter: - Name Name des Parameters (z.B. Fenstergroße) ¨ - Wertebereich der Wertebereich des Parameters (z.B. 3, 5, 7, 9, 11, ...) - Beschreibung Beschreibung des Parameters (z.B. Große ¨ des Fensters) - Name Name des weiteren Parameters - Wertebereich der Wertebereich des weiteren Parameters - Beschreibung Beschreibung des weiteren Parameters
B Ausgew¨ahlte Funktionen im O RASIS3D -System
174
Fehlermeldungen: 1 2 9
Fehlerwert und was der Wert bedeutet. Z.B.: ¨ Falsche Anzahl von Ubergabeobjekten. Parameterwert außerhalb des erlaubten Bereiches. Schreiben der Randwerte missgluckt. ¨
B.1 Bildkonvertierungen Diese Funktion soll ein wenig ausfuhrlicher ¨ besprochen werden, damit die Verbindung von O RASIS3D -Funktionen und selbst geschriebenem Quellcode verdeutlicht wird. Bei der Erstellung von eigenen Funktionen kann man mit Hilfe des Befehls changetype den Bildtyp a¨ ndern. Bei der Konvertierung werden innerhalb von O RASIS 3D nachfolgende Regeln verwendet.1 Nach diesen Regeln arbeitet auch die O RASIS 3D -Funktion Image type conversion. Von Type-Binary nach ... TYPE-Binary: TYPE-8BitGray: TYPE-16BitGray: TYPE-Double: TYPE-RGB24:
A( x, y) = E( x, y) i f E( x, y) == 0 → A( x, y) = 0, else → A( x, y) = 255 i f E( x, y) == 0 → A( x, y) = 0, else → A( x, y) = 255 i f E( x, y) == 0 → A( x, y) = 0.0, else → A( x, y) = 255.0 i f E( x, y) == 0 → A RGB ( x, y) = 0, else → ARGB ( x, y) = 255
Von Type-8BitGray nach ... TYPE-Binary: TYPE-8BitGray: TYPE-16BitGray: TYPE-Double: TYPE-RGB24:
1
i f E( x, y) == 0 → A( x, y) = 0, else → A( x, y) = 255 A( x, y) = E( x, y) A( x, y) = E( x, y) A( x, y) = Double( E( x, y)) A RGB ( x, y) = E( x, y)
Bin¨arbilder werden in einem 8-Bit-Format gespeichert. BinFalse = 0 und BinTrue != 0 (default = 255). Bei A RGB ( x, y ) = ... wird den drei Farbkan¨alen der gleiche Intensit¨atswert zugeordnet.
B.1 Bildkonvertierungen
175
Von Type-16BitGray nach ... TYPE-Binary: TYPE-8BitGray: TYPE-16BitGray: TYPE-Double: TYPE-RGB24:
i f E( x, y) == 0 → A( x, y) = 0, else → A( x, y) = 255 A( x, y) = LowByte( E( x, y)) A( x, y) = E( x, y) A( x, y) = Double( E( x, y)) A RGB ( x, y) = LowByte( E( x, y))
Von Type-Double nach ... TYPE-Binary: TYPE-8BitGray:
TYPE-16BitGray:
TYPE-Double: TYPE-RGB24:
i f E( x, y) < 1 → A( x, y) = 0, else → A( x, y) = 255 i f E( x, y) <= 0 → A( x, y) = 0, i f E( x, y) >= 255 → A( x, y) = 255, else → A( x, y) = Int( E( x, y)) i f E( x, y) <= 0 → A( x, y) = 0, i f E( x, y) >= 65535 → A( x, y) = 65535, else → A( x, y) = Int( E( x, y)) A( x, y) = ( E( x, y)) i f E( x, y) <= 0 → A RGB ( x, y) = 0, i f E( x, y) >= 255 → A RGB ( x, y) = 255, else → ARGB ( x, y) = Int( E( x, y))
Von Type-RGB24 nach ... TYPE-Binary: TYPE-8BitGray: TYPE-16BitGray: TYPE-Double: TYPE-RGB24:
i f E RGB ( x, y) == 0 → A( x, y) = 0, else → A( x, y) = 255 E R ( x,y )+ E G( x,y )+ E B( x,y ) 3 E ( x,y )+ E G( x,y )+ E B( x,y ) A( x, y) = R 3 E ( x,y )+ E G( x,y )+ E B( x,y ) A( x, y) = R 3.0 A RGB ( x, y) = E RGB ( x, y)
A( x, y) =
In obiger Notation (vgl. Seite 173) wurde ¨ das nun wie folgt aussehen: DLL-Name: Funktionsname: Beschreibung: Unterstutzte ¨ Bildtypen:
Basis1.dll Image type conversion Image type conversion Alle Typen
B Ausgew¨ahlte Funktionen im O RASIS3D -System
176
Eingaben: Ausgaben: Parameter: - Name - Wertebereich - Beschreibung Fehlermeldungen: 1001
BILD BILD Outputtype 1,2,3,4,10 Bestimmt den Typ des Ausgabebildes Typ des Eingabebildes wird nicht unterstutzt. ¨
Um zu verdeutlichen, wie dieser Befehl im C-Code zu verwenden ist, soll der folgende Programmausschnitt dienen. Der Typ des Ausgabebildes wird auf den Typ des Eingabebildes gesetzt: // Ausgabebild auf den Typ des Eingabebildes setzen switch ( outtype ){ case TYPE_BINARY : { outImage->changeType(TYPE_BINARY); break; } case TYPE_8BITGRAY : { outImage->changeType(TYPE_8BITGRAY); break; } case TYPE_16BITGRAY : { outImage->changeType(TYPE_16BITGRAY); break; } case TYPE_DOUBLE : { outImage->changeType(TYPE_DOUBLE); break; } case TYPE_RGB24 : { outImage->changeType(TYPE_RGB24); break; } default : { ((TZI_Error*)tl->Last())->errorcode = 1; return false; } }
B.2 Histogrammebnung
177
B.2 Histogrammebnung Die Histogrammebnung verteilt die Werte im Histogramm eines Bildes so um, dass nach der Operation alle Grauwerte im Ausgabebild gleich oft vorkommen (vgl. Abschnitt 4.1.2 Seite 41). DLL-Name: Funktionsname: Beschreibung: Unterstutzte ¨ Bildtypen: Eingaben: Ausgaben: Parameter: - Name - Wertebereich - Beschreibung Fehlermeldungen: 14 15 16
Basis1.dll Histogrammebnung Histogrammebnung von 8-Bit-Bildern 8-Bit BILD BILD Anzahl der neuen Grauwerte 1 ... 256 Anzahl der neuen Grauwerte im neuen Bild Fehler bei der Bereitstellung von Speicher Die Funktion Histogrammebnung unterstutzt ¨ nur 8-Bit Bilder. Zu viele Pixel mit dem gleichen Inten¨ sit¨atswert. Uberlauf des Histogramms.
Das folgende Stuck ¨ Quellcode dient der Veranschaulichung:2 ¨R 8-BIT BILDER // Histogrammebnung NUR FU bool Histogrammebnung(TList *tl) { // 1 Eingabe Bild, // 1 Ausgabe Bild, // 1 Parameter, Anzahl der neuen Graustufen ((TZI_Error*)tl->Last())->errortype = TZI_ERROR; ((TZI_Error*)tl->Last())->modul = "Basis1"; ((TZI_Error*)tl->Last())->function = "Histogrammebnung"; // Kontrolle, ob gen¨ ugend Parameter ¨ ubergeben worden sind if (tl->Count != 4){ ((TZI_Error*)tl->Last())->errorcode = 1001; return false; 2
Die Zeilenumbruche ¨ im Quellcodestuck ¨ sind teilweise nachtr¨aglich eingefugt ¨ worden, damit die Codezeilen nicht uber ¨ den Seitenrand hinausgehen. Auslassungen sind durch [...]“ gekennzeichnet. ”
B Ausgew¨ahlte Funktionen im O RASIS3D -System
178
} Pixel_koordinate
*histogramm;
// Kapseln der eigentlichen Funktion zum Abfangen // von Run-Time-Fehlern try { int InImage =0; // Eingabebild int OutImage =1; // Ausgabebild int Parameter=2; // Anzahl der neuen Graustufen ¨bergebenen Bilder holen // Zeiger f¨ ur die u VisionImage* inImage = (VisionImage*)tl->Items[InImage]; VisionImage* outImage = (VisionImage*)tl->Items[OutImage]; // Ausgabebild zun¨ achst auf gr¨ oßten Bildtyp setzen, der // von der Funktion unterst¨ utzt wird. // (Am Ende kann der Typ noch umgewandelt werden) BYTE* outImageData = (BYTE*)outImage->setType(TYPE_8BITGRAY); // Eingabebild in dem Format auslesen, wie sie in der // Funktion ben¨ otigt wird BYTE* inImageData = inImage->getDataAs8BitGray(); // Diese Funktion unterst¨ utzt 8-Bit Grauwertbiler if (inImage->getType()!= TYPE_8BITGRAY) { ((TZI_Error*)tl->Last())->errorcode = 1031; return false; } // Gr¨ oße des Bildes auslesen int width = inImage->getWidth(); int height = inImage->getHeight(); int newgray = (int)(((IntegerParameter*)tl->Items[Parameter])->getValue()); const const int int int
TMAX = 150000; G = 255; pxval; // Pixelwert meanvalue;// Mittelwert in einer 8er Nachbarschaft hh, ww, pixelcount, oldgraylevel;
B.2 Histogrammebnung
int int int int int
newlevel, newlevel_old; grayvalue, minvalue; ii, pos, w_min, h_min; histo[(G+1)]; count, set=0;
histogramm = new Pixel_koordinate[(G+1)*TMAX]; if (histogramm == NULL){ ((TZI_Error*)tl->Last())->errorcode = 0; return false; } for (int h=0; h < (height); h++) { for (int w = 0; w < (width); w++) { outImageData[(h)*width+(w)]= (BYTE) 255; } } for (int i=0; i <= G; i++) { histo[i]=0; } for (int h=0; h < (height); h++) { for (int w = 0; w < (width); w++) { pxval = (int) inImageData[(h)*width+(w)]; if (pxval > G) { ((TZI_Error*)tl->Last())->errorcode = 1; return false; } histo[pxval]++; if (histo[pxval] > TMAX) { ((TZI_Error*)tl->Last())->errorcode = 2; return false; } meanvalue=0; for (int i=-1; i <= 1; i++) { for (int j=-1; j <= 1; j++) { hh=h+i; ww=w+j; if (hh < 0) hh=0; if (ww < 0) ww=0; if (hh >= height) hh=height-1;
179
180
B Ausgew¨ahlte Funktionen im O RASIS3D -System
if (ww >= width) ww=width-1; meanvalue += (int) inImageData[(hh)*width+(ww)]; } } meanvalue= int (meanvalue/9); histogramm[pxval*TMAX+histo[pxval]].w = w; histogramm[pxval*TMAX+histo[pxval]].h = h; histogramm[pxval*TMAX+histo[pxval]].mean = meanvalue; } } count=0; for (int i=0; i <= G; i++) { count+=histo[i]; } // Berechnung des neuen Histogramms newlevel_old = 0; // Ausgabebild erstellen oldgraylevel = 0; for (grayvalue=0; grayvalue < newgray; grayvalue++) { newlevel = (int)(((grayvalue+1)*width*height)/newgray) newlevel_old; newlevel_old += newlevel; pixelcount = newlevel; do { if (pixelcount >= histo[oldgraylevel]) { // Alle Pixel k¨ onnen auf den neuen Wert gesetzt werden while (histo[oldgraylevel]> 0) { hh = histogramm[oldgraylevel*TMAX+histo[oldgraylevel]].h; ww = histogramm[oldgraylevel*TMAX+histo[oldgraylevel]].w; outImageData[hh*width+ww]=(BYTE) grayvalue; set++; histo[oldgraylevel]--; pixelcount--; } oldgraylevel++; } else { // Es sind mehr Pixel als ben¨ otigt in dem alten // Histogramm und es werden die Pixel mit dem // geringsten Mittelwert genommen
B.2 Histogrammebnung
181
do { // Suchen des Pixels mit dem geringsten Mittelwert minvalue = WORD16_MAX; // Maximal m¨ oglicher Wert for (ii=1; ii<=histo[oldgraylevel]; ii++) { if (histogramm[oldgraylevel*TMAX+ii].mean<minvalue){ minvalue = histogramm[oldgraylevel*TMAX+ii].mean; w_min = histogramm[oldgraylevel*TMAX+ii].w; h_min = histogramm[oldgraylevel*TMAX+ii].h; pos = ii; } } // Punkt mit kleinstem Mittelwert gefunden // Punkt in das Ausgabebild schreiben outImageData[(h_min)*width+(w_min)]=(BYTE) grayvalue; set++; // Letztes Element an die Stelle des kleinsten // Mittelwertes schreiben histogramm[oldgraylevel*TMAX+pos].w = histogramm[oldgraylevel*TMAX+histo[oldgraylevel]].w; histogramm[oldgraylevel*TMAX+pos].h = histogramm[oldgraylevel*TMAX+histo[oldgraylevel]].h; histogramm[oldgraylevel*TMAX+pos].mean = histogramm[oldgraylevel*TMAX+histo[oldgraylevel]].mean; // und den Z¨ ahler um ein Element verringern histo[oldgraylevel]--; // Anzahl der ben¨ otigten Pixel um eins reduzieren pixelcount--; } while (pixelcount > 0); } while (pixelcount > 0); } free(histogramm); [...]
B Ausgew¨ahlte Funktionen im O RASIS3D -System
182
B.3 Mittelwertfilter Die Average-Gl¨attung ist eine Mittelwertgl¨attung. Sie berechnet den Mittelwert von Intensit¨atswerten eines Fensters (vgl. Abschnitt 4.2.2, Seite 46). DLL-Name: Funktionsname: Beschreibung: Unterstutzte ¨ Bildtypen: Eingaben: Ausgaben: Parameter: - Name - Wertebereich - Beschreibung Fehlermeldungen: 1 2 9
Basis1.dll Average Mittelwertfilter zur Gl¨attung von Grauwertbildern 8-Bit, 16-Bit BILD BILD Fenstergroße ¨ 3, 5, 7, 9, 11, .. Große ¨ des Fensters, mit dem das Bild gefaltet wird ¨ Falsche Anzahl von Ubergabeobjekten Parameterwert außerhalb des erlaubten Bereiches Schreiben der Randwerte missgluckt ¨
Das folgende Stuck ¨ Quellcode dient der Veranschaulichung:3 case TYPE_8BITGRAY : { BYTE* inImageData = inImage->getDataAs8BitGray(); BYTE* outImageData = (BYTE*)outImage->setType(TYPE_8BITGRAY); int result; // Bild falten/bearbeiten for (int h=((size-1)/2); h<(height-((size-1)/2)); h++){ for (int w=((size-1)/2); w<(width-((size-1)/2)); w++){ result=0; // Werte integrieren/Mittelwert berechnen for (int hh=-((size-1)/2); hh<=((size-1)/2); hh++){ for (int ww=-((size-1)/2); ww<=((size-1)/2); ww++){ 3
Die Zeilenumbruche ¨ im Quellcodestuck ¨ sind teilweise nachtr¨aglich eingefugt ¨ worden, damit die Codezeilen nicht uber ¨ den Seitenrand hinausgehen. Ebenso wurden Variablendeklarationen weggelassen.
B.3 Mittelwertfilter
result += inImageData[(h+hh)*width+(w+ww)]; } } // Ergebnis ins Ergebnisbild outImageData[h*width+w] = (BYTE)(result/(size*size)); } } break; }
183
B Ausgew¨ahlte Funktionen im O RASIS3D -System
184
B.4 Medianfilter Die Rauschminderung mittels des Medianfilters ist eine Rangordnungsgl¨attung. Das bedeutet, dass innerhalb des Fensters die Pixel anhand ihrer Intensit¨atswerte aufsteigend sortiert werden. Das mittlere Pixel in dem sortierten Feld bestimmt den neuen“ Intensit¨atswert an entsprechender Stelle im Ausgabebild (vgl. Ab” schnitt 4.2.2, Seite 47f). Eine wesentliche Rolle spielt hierbei das Sortierverfahren. Es sollte schon darauf geachtet werden, dass das Sortierverfahren hinsichtlich seiner Ordnung nicht quadratisch ist, wie beispielsweise Bubble-Sort (vgl. Sedgewick (1992)), da dies erheblichen Einfluss auf die Performanz des Filters hat. DLL-Name: Basis1.dll Funktionsname: Median Beschreibung: Rangordnungsfilter zur Gl¨attung von Grauwertbildern Unterstutzte ¨ Bild- 8-Bit, 16-Bit typen: Eingaben: BILD Ausgaben: BILD Parameter: - Name Fenstergroße ¨ - Wertebereich 3, 5, 7, 9, 11, 13, 15 - Beschreibung Große ¨ des Fensters, mit dem das Bild gefaltet wird Fehlermeldungen: ¨ 1 Falsche Anzahl von Ubergabeobjekten 2 Parameterwert außerhalb des erlaubten Bereiches 9 Schreiben der Randwerte missgluckt ¨ Das folgende Stuck ¨ Quellcode dient der Veranschaulichung4 . quick_select ist eine Funktion, die den Medianwert (also den mittleren Wert) eines sortierten Feldes zuruckliefert: ¨ case TYPE_8BITGRAY : { WORD16* inImageData = inImage->getDataAs16BitGray(); BYTE* outImageData = (BYTE*)outImage->setType(TYPE_8BITGRAY); // Speicher reservieren 4
Die Zeilenumbruche ¨ im Quellcodestuck ¨ sind teilweise nachtr¨aglich eingefugt ¨ worden, damit die Codezeilen nicht uber ¨ den Seitenrand hinausgehen. Auch wurden Variablendeklarationen weggelassen.
B.4 Medianfilter
185
WORD16 *data= new WORD16[(size*size)]; for(int x=((size-1)/2); x<(width-((size-1)/2)); x++){ for(int y=((size-1)/2); y<(height-((size-1)/2)); y++){ // Bereich zum Sortieren kopieren copyRadius(data, inImageData, x, y, size, width); // Funktion quick select aufrufen // zur¨ uckgelieferten Medianwert ins Ausgabebild // schreiben outImageData[y*width+x] = (BYTE)quick_select(data, size*size); } } delete data; break; }
B Ausgew¨ahlte Funktionen im O RASIS3D -System
186
B.5 Simple-Edge-Kantenoperator Dieser Operator (auch: einseitiger Kantenoperator; vgl. Abschnitt 5.2, Seite 63) erzeugt aus der Differenz zwischen dem aktuellen Intensit¨atswert und der minimalen Intensit¨at in einer 3 × 3-Nachbarschaft ein Kantenbild. Der Operator eignet sich besonders gut fur ¨ Bilder, deren Intensit¨aten in großen Bereichen nahezu konstant sind. DLL-Name: Funktionsname: Beschreibung:
Unterstutzte ¨ Bildtypen: Parameter: Fehlermeldungen: 1 9
Basis1.dll SimpleEdge Einfache Kantenverst¨arkung, durch Subtraktion des niedrigsten Intensit¨atswertes in einer 3*3 - Nachbarschaft vom untersuchten Pixel. 8-Bit, 16-Bit Keine ¨ Falsche Anzahl von Ubergabeobjekten Schreiben der Randwerte missgluckt ¨
Das folgende Stuck ¨ Quellcode dient der Veranschaulichung:5 case TYPE_8BITGRAY : { BYTE* inImageData = inImage->getDataAs8BitGray(); BYTE* outImageData = (BYTE*)outImage->setType(TYPE_8BITGRAY); int minvalue; // Bild falten/bearbeiten for (int h=1; h < (height-1); h++) { for (int w = 1; w < (width-1); w++) { minvalue = 255; // kleinsten Wert suchen for (int hh = -1; hh <= 1; hh++) { for (int ww = -1; ww <= 1; ww++) { if (minvalue > inImageData[(h+hh)*width+(w+ww)]){ minvalue = inImageData[(h+hh)*width+(w+ww)]; 5
Die Zeilenumbruche ¨ im Quellcodestuck ¨ sind teilweise nachtr¨aglich eingefugt ¨ worden, damit die Codezeilen nicht uber ¨ den Seitenrand hinausgehen. Auch wurden Variablendeklarationen weggelassen.
B.5 Simple-Edge-Kantenoperator
187
} // if } // for ww } // for hh // Ergebnis in des Ausgabebild outImageData[h*width+w] = (BYTE) (inImageData[(h)*width+(w)] - minvalue); } // for w } //for h break; }
B Ausgew¨ahlte Funktionen im O RASIS3D -System
188
B.6 Laplace-Operator Der Laplace-Operator ist eine Ableitung zweiter Ordnung. Mit Hilfe dieses Operators werden strukturreiche Bildregionen hervorgehoben und strukturarme Bereiche unterdruckt. ¨ Diese Funktion gibt es mit verschiedenen Operatorkernen. ¨ die in den Gleichungen B.1 bis B.3 dargestellten drei KerO RASIS 3D unterstutzt ne. DLL-Name: Funktionsname: Beschreibung:
Unterstutzte ¨ Bildtypen: Parameter: - Name - Wertebereich
- Beschreibung - Name - Wertebereich - Beschreibung - Name - Wertebereich - Beschreibung Fehlermeldungen: 1 9
Basis1.dll Laplace Kantendetektion durch diskrete Ableitung zweiter Ordnung. Die Funktion unterstutzt ¨ drei Operatorkerne 8-Bit, 16-Bit
Operatorkern [1,2,1—2,-12,2—1,2,1]“ ” [0,1,0—1,-4,1—0,1,0]“ ” [1,1,1—1,-8,1—1,1,1]“ ” Unterschiedliche Typen von Operatorkernen Ausgabeform Gewichtet“, Bin¨ar“ ” ” Ausgabeform Schwellwert 0..255 Schwellwert fur ¨ die Binarisierung ¨ Falsche Anzahl von Ubergabeobjekten Schreiben der Randwerte missgluckt ¨
In der Funktion wird zun¨achst der Betrag des Operatorergebnisses gem¨aß nachfolgender Gewichtungsmasken ermittelt. Diese stehen auch quasi als Wertebereich (s.o.) zur Verfugung. ¨
1 1 A = abs 2 12 1
2 −12 2
0 1 A = abs 1 4 0
1 −4 1
1 2 1 0 1 0
(B.1)
(B.2)
B.6 Laplace-Operator
189
1 1 A = abs 1 8 1
1 −8 1
1 1 1
(B.3)
1 1 Die Normierungen 12 , 4 bzw. 18 sind implementierungstechnische Details. Wenn unter den positiven Gewichtungen der maximale Grauwert von 255 oder 256 anliegt und unter der negativen Gewichtung 0, dann wurde ¨ der darstellbare Bereich uberschritten ¨ werden. Auch w¨aren der ein oder andere Datentyp gar nicht in der Lage, solch hohe Werte aufzunehmen. Theoretisch muss diese Normierung nicht sein (vgl. Abschnitt 5.3).
Nachfolgend ist zur Veranschaulichung ein Stuck ¨ Quellcode aufgelistet, das den Laplace fur ¨ ein 8-Bit-Grauwertbild berechnet: 6 case TYPE_8BITGRAY : { BYTE* inImageData = inImage->getDataAs8BitGray(); BYTE* outImageData = (BYTE*)outImage->setType(TYPE_8BITGRAY); for (h = 1; h < height-1; h++) { for (w = 1; w < width-1; w++) { switch (Filter){ case 1 : { result = inImageData[(h-1)*width+(w-1)] + 2* inImageData[(h-1)*width+(w )] + inImageData[(h-1)*width+(w+1)] + 2* inImageData[(h 12* inImageData[(h 2* inImageData[(h
)*width+(w-1)] )*width+(w )] + )*width+(w+1)] +
inImageData[(h+1)*width+(w-1)] + 2* inImageData[(h+1)*width+(w )] + inImageData[(h+1)*width+(w+1)]; // Ergebnis ins Ausgabebild outImageData[h*width+w] = (BYTE) fabs(result/12.0)+ 0.5; break; } case 2 : { result = 6
inImageData[(h-1)*width+(w
)] +
Die Zeilenumbruche ¨ im Quellcodestuck ¨ sind teilweise nachtr¨aglich eingefugt ¨ worden, damit die Codezeilen nicht uber ¨ den Seitenrand hinausgehen.
B Ausgew¨ahlte Funktionen im O RASIS3D -System
190
inImageData[(h )*width+(w-1)] 4* inImageData[(h )*width+(w )] inImageData[(h )*width+(w+1)] inImageData[(h+1)*width+(w )] // Ergebnis ins Ausgabebild outImageData[h*width+w] = (BYTE)fabs(result/4.0)+ 0.5; break; } case 3 : { result =
+ + ;
inImageData[(h-1)*width+(w-1)] + inImageData[(h-1)*width+(w )] + inImageData[(h-1)*width+(w+1)] + inImageData[(h 8* inImageData[(h inImageData[(h
)*width+(w-1)] )*width+(w )] + )*width+(w+1)] +
inImageData[(h+1)*width+(w-1)] + inImageData[(h+1)*width+(w )] + inImageData[(h+1)*width+(w+1)]; // Ergebnis ins Ausgabebild outImageData[h*width+w] = (BYTE)fabs(result/8.0)+ 0.5; break; } default : { // Filter ungleich 1, 2 oder 3 ((TZI_Error*)tl->Last())->errorcode=0; return false; } //default } //switch } } break; }
B.7 Merkmalsberechnung
191
B.7 Merkmalsberechnung Ein Beispiel zur Berechnung von Merkmalen zweiter Ordnung (Cooccurrence) soll in diesem Abschnitt besprochen werden (vgl. auch Kapitel 6). Die Besonderheit ist hierbei, dass die Ausgabe neben einem Bild auch ein Text ist, in dem die einzelnen berechneten Merkmale aufgelistet sind. DLL-Name: Funktionsname: Beschreibung: Unterstutzte ¨ Bildtypen: Eingaben: Ausgaben: Parameter: - Name - Wertebereich - Beschreibung Fehlermeldungen:
Buch.dll Coocurrence Berechnung der Coocurrence-Matrix 8-Bit Bild Text Ansicht Normalansicht (0)/Normiert (1) Art der bildhaften Darstellung der Cooc-Matrix keine zus¨atzlichen
Nachfolgend ist zur Anschaulichkeit ein Stuck ¨ Quellcode aufgelistet, das vier statistische Merkmale basierend auf einer Cooccurrence-Matrix fur ¨ ein Bild berechnet. Der Quellcode ist deswegen in aller Ausfuhrlichkeit ¨ aufgelistet, da hier gegenuber ¨ den vorigen Quellcodebeispielen eine Ausgabe als Text und nicht als Bild erfolgt:7 bool Coocurrence(TList *tl) { // Die DLL muss den Wert TRUE zur¨ uckliefern, wenn keine // Fehler aufgetreten sind, ansonsten den Wert FALSE. // In der TList werden die Objekte und Parameter ¨ ubergeben. // Am Anfang kommen die Eingabe-Ojekte, dann die // Ausgabe-Objekte, anschließend die Parameter und zum // Schluss ein Fehler-Objekt. Ein- und Ausgabe-Objekte // k¨ onnen Bilder und Texte sein. Die Objekte werden von // NULL an gez¨ ahlt und die Reihenfolge // ist vom Eintrag in der Funktionsdeklaration abh¨ angig. // Initialisierung der Fehlermeldung, muss f¨ ur die // Verwaltung der Fehlermeldungen unbedingt ausgef¨ ullt // werden. F¨ ur die Anzeige der Meldung sind die 7
Die Zeilenumbruche ¨ im Quellcodestuck ¨ sind teilweise nachtr¨aglich eingefugt ¨ worden, damit die Codezeilen nicht uber ¨ den Seitenrand hinausgehen. Auslassungen sind durch [...]“ gekennzeichnet. ”
192
// // // // //
B Ausgew¨ahlte Funktionen im O RASIS3D -System
Informationen ->modul ->function und ->errorcode wichtig. Da das Fehlerobjekt immer an letzter Stelle steht, kann man auf es mit: ((TZI_Error*)tl->Last()) zugreifen. ((TZI_Error*)tl->Last())->errortype = TZI_ERROR; ((TZI_Error*)tl->Last())->modul = "Auswertung"; ((TZI_Error*)tl->Last())->function = "coocurrence";
// Kontrolle, ob gen¨ ugend Parameter ¨ ubergeben worden sind, // in diesem Beispiel: 1 Eingabe-Objekt + 2 Ausgabe-Objekte // + 1 SC-Param. + 1 Fehler-Objekt = 5 if (tl->Count != 5){ ((TZI_Error*)tl->Last())->errorcode = 1001; return false; } // if (tl->Count != 5){ // // // // //
Die eigentl. Funktion sollte mit try { .. } umschlossen werden, dadurch k¨ onnen run-time Fehler abgefangen werden. Anschließend muss die Funktion catch(...) {Fehlermeldung} kommen. Hier kann ggf. auch noch Speicher freigegeben werden. try {
// Zuordnung der TList Nummern int InImageNr = 0; // TListnr f¨ ur das Eingabebild int OutImageNr = 1; // TListnr f¨ ur das Ausgabebild // Pointer auf die Objekte in der TList holen VisionImage* inImage = (VisionImage*)tl->Items[InImageNr]; VisionImage* outImage = (VisionImage*)tl->Items[OutImageNr]; // Ausgabebild zun¨ achst auf gr¨ oßten Bildtyp setzen, der // von der Funktion unterst¨ utzt wird. (Am Ende kann der // Typ noch umgewandelt werden.) // Format des Ausgabeobjektes festlegen: // Folgende Formate werden unterst¨ utzt: [...] outImage->changeSize(256,256);//Ausgabebild anpassen double* outImageData = (double*)outImage->setType(TYPE_DOUBLE);
B.7 Merkmalsberechnung
// // // //
193
Eingabebild in dem Format auslesen, wie es in der Funktion ben¨ otigt wird. Zeiger auf die Daten der Objekte holen und den Auslesetyp festlegen. Folgende Typen werden unterst¨ utzt: [...] BYTE* inImageData = inImage->getDataAs8BitGray();
// Diese Funktion unterst¨ utzt 8-Bit Grauwertbilder if (inImage->getType()!= TYPE_8BITGRAY){ ((TZI_Error*)tl->Last())->errorcode = 1031; return false; } // Gr¨ oße des Bildes auslesen int width = inImage->getWidth(); int height = inImage->getHeight(); // Auslesen der Parameter: // Folgende Parameter werden zur Zeit unterst¨ utzt: // BoolParameter // IntegerParameter // DoubleParameter // StringParameter // ComplexParameter // StringComplexParameter //Darstellungsvariante ausw¨ ahlen int viewOption = ((StringComplexParameter*)tl->Items[3])->getValue(); //Ausgabetext Txt* outTxt = (Txt*)tl->Items[2]; /* DO YOUR OWN STUFF HERE!!!! */ //Arrays f¨ ur Matrizen double* c0 = new double[256*256]; double* c45 = new double[256*256]; double* c90 = new double[256*256]; double* c135 = new double[256*256]; double* c5 = new double[256*256]; //L¨ oschen der Matrizen for (int i=0;i<256*256;i++){ c0[i]=0; c45[i]=0; c90[i]=0; c135[i]=0; } for (int y=0;y
194
B Ausgew¨ahlte Funktionen im O RASIS3D -System
//0 Grad berechnen if (x<width-1){ c0[inImageData[y*width+x]*256 + inImageData[y*width+x+1]]++; c0[inImageData[y*width+x+1]*256 + inImageData[y*width+x]]++; } //45 Grad berechnen if (y>0 && x<width-1){ c45[inImageData[y*width+x]*256 + inImageData[(y-1)*width+x+1]]++; c45[inImageData[(y-1)*width+x+1]*256 + inImageData[y*width+x]]++; } //90 Grad if (y>0){ c90[inImageData[y*width+x]*256 + inImageData[(y-1)*width+x]]++; c90[inImageData[(y-1)*width+x]*256 + inImageData[y*width+x]]++; } //135 Grad if (y>0 && x>0){ c45[inImageData[y*width+x]*256 + inImageData[(y-1)*width+x-1]]++; c45[inImageData[(y-1)*width+x-1]*256 + inImageData[y*width+x]]++; } } } //Normieren und f¨ unfte Matrix berechnen for (int i=0;i<256*256;i++){ c0[i] /= 2*height*(width-1); c45[i] /= 2*(height-1)*(width-1); c90[i] /= 2*(height-1)*width; c135[i] /= 2*(height-1)*(width-1); c5[i] = (c0[i]+c45[i]+c90[i]+c135[i])/4; //entweder normal ausgeben if (!viewOption) outImageData[i] = c5[i]; // oder in optimierter Version auf 16 versch. // Graustufen beschr¨ anken else outImageData[i] = min(c5[i],((double)16/(2*width*height))); }
B.7 Merkmalsberechnung
195
//Werte berechnen //Energie double ASM = 0; for (int i=0;i<256;i++) for (int j=0;j<256;j++) ASM += c5[j*256+i] * c5[j*256+i]; //Kontrast double kontrast = 0; for (int i=0;i<256;i++) for (int j=0;j<256;j++) kontrast += (i-j) * (i-j) * c5[j*256+i]; //Entropie double entropie = 0; for (int i=0;i<256;i++) for (int j=0;j<256;j++) if (c5[j*256+i]!=0)//nur log bilden, falls nicht 0 entropie -= c5[j*256+i] * log(c5[j*256+i]); //Korrelation double korrelation = 0; double muem=0, muen=0, sigmaqm=0, sigmaqn=0; //muem und muen for (int i=0;i<256;i++){ for (int j=0;j<256;j++){ muen += i * c5[j*256+i]; muem += j * c5[j*256+i]; } } //sigmaqn und sigmaqm for (int i=0;i<256;i++){ for (int j=0;j<256;j++){ sigmaqn += (i-muen) * (i-muen) * c5[j*256+i]; sigmaqm += (j-muem) * (j-muem) * c5[j*256+i]; } } //sigman und sigmam berechnen (Wurzelziehen) double sigman = sqrt(sigmaqn); double sigmam = sqrt(sigmaqm); //eigentliche Berechnung der Korrelation
B Ausgew¨ahlte Funktionen im O RASIS3D -System
196
for (int i=0;i<256;i++) for (int j=0;j<256;j++) //Summenteil der Formel korrelation += c5[j*256+i]*i*j; //mues abziehen korrelation -= muen*muem; //nicht durch 0 teilen, if (!sigman) sigman = 0.00000000001; //ggf epsilon hinzuf¨ ugen if (!sigmam) sigmam = 0.00000000001; //untere Seite des Bruches korrelation /= sigman*sigmam; //Ende Werte String ausgabe1, ausgabe2, ausgabe3, ausgabe4; ausgabe1.printf("ASM: %.6f\n", ASM); ausgabe2.printf("Kontrast: %.4f\n", kontrast); ausgabe3.printf("Entropie: %.4f\n", entropie); ausgabe4.printf("Korrelation: %.4f\n", korrelation); outTxt->data += ausgabe1 + ausgabe2 + ausgabe3 + ausgabe4; delete c0, c45, c90, c135, c5; // Ende der eigentlichen Funktion } // try { [...]
Anhang C
¨ Ubungsaufgaben Nachdem wir uns im Anhang A mit dem O RASIS3D -System und dessen Handhabung besch¨aftigt sowie im Anhang B einige O RASIS3D -Funktionen n¨aher an¨ gesehen haben, sollen im Folgenden einige Ubungsaufgaben formuliert werden, 3D ¨ ¨ Die Aufgaben decken alle in die ein praktisches Uben mit O RASIS ermoglichen. diesem Buch behandelten Themenbereiche ab. In der Regel weisen alle Aufgaben einen praktischen und einen theoretischen Teil auf. Im praktischen Teil soll jeweils ¨ das jeweilige eine O RASIS 3D -Funktion implementiert und im theoretischen uber ¨ Thema der Ubungsaufgabe reflektiert werden. Fur ¨ die Implementierungsaufgaben wird davon ausgegangen, dass ein Borland C++ Builder bereits korrekt auf dem Rechner installiert wurde.
C.1 Aufgabe 1: Erstellung eigener Funktionen fur ¨ 3D O RASIS mit Borland C++ Alle Bildverarbeitungsfunktionen in O RASIS3D sind in Form von DLLs Dynamic Link Libraries realisiert. Dies bedeutet, dass zum Erstellen einer eigenen Bildverarbeitungsfunktion fur ¨ O RASIS 3D eine eigene DLL programmiert werden muss, die nach ihrer Fertigstellung einfach gemeinsam mit den bereits vorhandenen O RASIS 3D -DLLs verwendet werden kann. ¨ In den folgenden Ubungen sollen selbstst¨andig Bildverarbeitungsoperatoren zu den verschiedenen Themen des Buches erstellt werden. Zun¨achst aber – sozusagen zum Warmwerden – sollen im Rahmen dieser ersten Aufgabe der Umgang mit O RASIS 3D und die praktische Erstellung einer eigenen DLL im Vordergrund stehen. Wenn O RASIS3D wie vorgesehen in c:\Programme\TZI\Orasis3d installiert
198
¨ C Ubungsaufgaben
wurde, dann sollten alle Pfadeinstellungen fur ¨ das Projekt stimmen. Quasi ein Quellcodegerust, ¨ um eine solche DLL zu erstellen, das Verzeichnis ist w¨ahrend der Installation von O RASIS3D in c:\Programme\TZI\Orasis3d\src\ExamplDLL installiert worden. Um die DLL bzw. die Funktion zu implementieren, startet man die Entwicklungsumgebung Borland C++ mit einem Doppelklick auf die .bpr-Datei des Beispielprojektes. Die Arbeitsumgebung mit allen Dateien des Projektes wird geoffnet. ¨ Der Sourcecode fur ¨ die neue Funktion befindet sich in der Datei ExampleDLL.cpp. Wie die Pfade in der IDE einzustellen sind, haben wir bereits in Abschnitt A.3 kennen gelernt. Das Projekt sollte kompilierbar sein. Falls es Probleme mit den includeDateien geben sollte, dann lohnt es sich mal, einen Blick in die Pfadeinstellungen unter Projekt->Optionen-> Verzeichnisse/Bedingungen bzw. Start->Parameter->Lokal zu werfen und hier die entsprechenden Einstellungen vorzunehmen. In der Datei findet sich eine Zeile: /* DO YOUR OWN STUFF HERE!!!! */ Nach dieser Zeile im Quellcode kann der eigene C-Code eingefugt ¨ werden. Folgendes kleines Programmstuck ¨ sollte zu finden sein: 1 2 3 4 5 6 7 8 9
for (y= 0; y < height; y++) { for (x= 0; x< width; x++){ // Read one value of the input image temp = inImageData[x+y*width]; // Hier den Code der ersten ¨ Ubung einf¨ ugen outImageData[x+y*width]=temp; i++; } // for (x= 0; x < width; x++){ } // for (y= 0; y < height; y++) {
Was bedeutet das im Einzelnen? Zun¨achst sehen wir eine zweifache Schleife mit den Laufvariablen x und y. Diese Schleifen gehen“ sozusagen uber ¨ das Bild in ” x- und y-Richtung. Zeile 3 ist ein Kommentar. Zeile 4 bedeutet, dass aus dem Bild inImageData an der Stelle [x+y*width] der Wert gelesen und der Variablen temp zugewiesen wird. Bilder sind in O RASIS 3D als Vektoren gespeichert. Was bedeutet, dass der Zugriff auf eine bestimmte Stelle im Bild berechnet werden muss. Es wird spaltenweise von links nach rechts per x uber ¨ das Bild gelaufen und zeilenweise mittels y. Soll nun eine bestimmte Position x in einer bestimmten Zeile y angesprochen werden, dann muss y mal die Bildbreite genommen und die xPosition addiert werden. Zeile 5 ist wieder ein Kommentar. In der Zeile 6 wird der Wert aus temp in ein neues Ausgabebild outImageData an die entsprechende Stelle [x+y*width] geschrieben. Die Zeilen 8 und 9 schließen die for-Schleifen. Dieses Programmstuck ¨ kopiert also lediglich das Eingabebild in ein Ausgabebild. ¨ Die erste Ubung zum Warmwerden“ ist die Aufgabe, den obigen Code durch ”
C.1 Aufgabe 1: Erstellung eigener Funktionen fur ¨ O RASIS 3D mit Borland C++
199
den nachfolgenden zu ersetzen und die einzelnen Schritte nachzuvollziehen. for (y= 0; y < height; y++) { for (x= 0; x < width; x++){ // Read one value of the input image temp = inImageData[x+y*width]; temp = 255 - temp; outImageData[x+y*width]=(BYTE)temp; i++; } // for (x= 0; x < width; x++){ } // for (y= 0; y < height; y++) { ¨ Nun muss die Funktion und die Ubergabe noch mit dem Integrator Start->Programme->Orasis3d->Integrator in der DLL bekannt gemacht werden. Dazu muss zun¨achst beim Integrator der Pfad ausgew¨ahlt werden, in dem die C++-Datei steht. Der Integrator zeigt dann schon die Beispiel-Funktionen an. Hier bitte die Beispiel-Funktionen loschen ¨ und die eigene Funktion hinzufugen. ¨ Wichtig ist: Der Funktionsname“ muss genau dem Funktionsnamen ” entsprechen. Wenn der Code fertig eingefugt ¨ ist, w¨ahlen Sie Projekt - xxx.dll erstellen. xxx steht fur ¨ den Namen der DLL. Sofern das Programm ohne Fehler kompiliert wurde, befindet sich anschließend in dem Verzeichnis ..\tzi\orasis3d\dlls in dem oben eingestellten Projektordner die fertige DLL. Wenn jetzt O RASIS3D gestartet wird, sollte die neue Funktion im Funktionsauswahlfenster sichtbar sein. Nun kann mit O RASIS3D ein einfacher Filtergraph mit der neuen Funktion aufgebaut werden. Das Bild Aufgabe1.bmp kann zum Testen verwendet werden. Folgende Fragen sollten Sie muhelos ¨ beantworten: Was ist mit dem Bild passiert? Beschreiben Sie mit eigenen Worten das visuelle Ergebnis.
200
¨ C Ubungsaufgaben
C.2 Aufgabe 2: Bin¨arbildverarbeitung und morphologische Operationen ¨ Ziel dieser Ubung ist, dass Sie sich mit der Bin¨arbildverarbeitung sowie morphologischen Operationen innerhalb der Bin¨arbildverarbeitung auseinander setzen. Die beiden benotigten ¨ Eingabebilder heißen Objekte1.bmp und Objekte2.bmp. Diese Bilder sollten bereits mit installiert und im Data Verzeichnis zu finden sein. Ein Hinweis: In O RASIS3D sind Bin¨arbilder folgendermaßen definiert: Ein Pixelwert == 0 wird als FALSE interpretiert und alle Pixelwerte != 0 als TRUE. Verwenden Sie fur ¨ diese Aufgabe bitte das Grauwertbild Objekte1.bmp. Entwickeln Sie eine Dilatations-Funktion und eine Erosions-Funktion, bei denen man, mit Hilfe eines Parameters, einstellen kann, ob als strukturierendes Element die Elementarraute oder das Elementarachteck auf das Eingabebild angewendet werden soll (siehe hierzu auch Abschnitt 3.3). Benutzen Sie bitte den StringComplexParameter. Im Integrator kann in die Werteliste fur ¨ den Parameter in der ersten Spalte ein Text und in die zweite Spalte ein Integerwert eingetragen werden. Dieser Wert wird dann in der Funktion mit diesem Befehl wieder ausgelesen: ((StringComplexParameter*)tl->Items[TListNummer])->getValue() Dabei gibt TListNummer die Stelle an, an der sich der Parameter in der TList befindet. Bei einem Eingabebild (Stelle 0), einem Ausgabebild (Stelle 1) und einem Parameter (Stelle 2) also TListNummer = 2 setzen. Achtung: Sie haben bei dieser Funktion jetzt ein Eingabeobjekt, ein Ausgabeobjekt, einen Parameter und das vorgeschriebene Fehlerobjekt. Also insgesamt 4 Objekte in der TList. Daher muss die Kontrolle, ob die richtige Anzahl von Objekten ubertragen ¨ wurde, ge¨andert werden: if (tl->Count != 4){ ((TZI_Error*)tl->Last())->errorcode = 1001; return false; } Wenn Sie die beiden Funktionen erzeugt haben, erstellen Sie in O RASIS 3D ein Projekt (Filtergraphen), bei dem das Bild Objekte1.bmp mit der Konvertierungsfunktion in ein Bin¨arbild umgewandelt wird. Wenden Sie zun¨achst die Erosion auf das Bild an und auf das Ausgabebild dann die Dilatation. Probieren Sie es ¨ mit beiden Parametereinstellungen aus. Beschreiben Sie, welche Anderungen die Funktionen auf den Bildern bewirken. Entwickeln Sie eine Funktion zur Vereinzelung und Markierung von Objekten in Bin¨arbildern, also die GRASSFIRE-Methode (siehe Abschnitt 3.3.2). Die Markierung der vereinzelten Objekte soll durch unterschiedliche Grauwerte symbolisiert
C.2 Aufgabe 2: Bin¨arbildverarbeitung und morphologische Operationen
201
werden.Ein Tipp bezuglich ¨ der Nummerierung: Es l¨auft ein Z¨ahler w¨ahrend der Berechnung mit, der bei jedem neuen Objekt inkrementiert wird. Im Ausgabebild werden die Objekte nicht in einem Bin¨arbild, sondern in einem Grauwertbild eingetragen. // Das Ausgabebild auf Typ 8BITGRAY setzen BYTE* outImageData = (BYTE*)outImage->setType(TYPE_8BITGRAY); Das erste Objekt wird mit dem Intensit¨atswert ‘10‘ gekennzeichnet, das zweite mit dem Wert ‘20‘ und so weiter. Der Hintergrund muss vorher auf ´0´ gesetzt worden sein. ¨ Wenden Sie diese Funktion auf das Bild Objekte2.bmp an. Uberlegen und beschreiben Sie, in welchen Bereichen der Bildverarbeitung dieser Operator angewendet werden kann. Wo l¨asst sich dieser Operator in das ME-Paradigma (vgl. Abschnitte 1 und 2.3) einsortieren? Benennen und erl¨autern Sie die einzelnen Stufen des ME-Paradigmas und ordnen Sie die GRASSFIRE-Methode entsprechend ein. Noch einige Hinweise: Es werden Bilder fur ¨ Zwischenergebnisse benotigt. ¨ Da es sich bei der Entwicklung der DLLs um C++-Programmierung handelt, kann wie folgt fur ¨ Zwischenbilder Speicher reserviert werden: BYTE* ImgTmp = new BYTE[width * height]; Der Zugriff erfolgt quasi wie ublich ¨ uber ¨ die folgende Anweisung: ImgTmp[x + y * width ]=... Der Speicher ist am Ende naturlich ¨ wieder freizugeben. Das kann durch folgende Anweisung erfolgen: delete[] ImgTmp;
¨ C Ubungsaufgaben
202
C.3 Aufgabe 3: Grauwertbildverarbeitung – Bildpunktoperationen ¨ Ziel dieser Ubung ist, dass Sie sich mit den Methoden der Bildvorverarbeitung am Beispiel von Kontrastverbesserungen und Rotation auseinander setzen. Zun¨achst sollen Sie eine Funktion entwickeln, die eine lineare Histogrammskalierung durchfuhrt ¨ (siehe Abschnitt 4.1.2), sodass das Ergebnisbild das verfugbare ¨ Spektrum von 256 Graustufen nutzt. Nachfolgend ist noch einmal die Formel zur linearen Histogrammskalierung angefuhrt: ¨ A( x, y) =
( Amax − Amin ) · ( E( x, y) − E min ) + Amin , Emax − Emin
mit Emin minimaler und Emax maximaler Grauwert im Eingabebild bzw. A min minimaler (hier 0) und A max maximaler (hier 255) Grauwert im Ausgabebild, wobei E( x, y) das Eingabebild und A( x, y) das Ausgabebild bezeichnet. Erzeugen Sie mit O RASIS 3D einen Filtergraphen, der die neue Funktion enth¨alt, und wenden Sie sie auf die Bilder Kontrast.bmp und Schachbrett klein.bmp an. Die Bilder wurden bereits mit installiert. Eine Verbesserung der Grauwerte des Bildes gegenuber ¨ dem Originalbild bringt auch die Skalierung der Grauwerte mit der normierten, relativen Summenh¨aufigkeit der Grauwerte als Skalierungsfunktion. Sei p E ( g) das normierte Histogramm von Eingabebild (E) und h E ( g) =
g
∑ p E (k),
k=0
g = 0, 1, . . . , 255
die relative Summenh¨aufigkeit, fur ¨ die 0 ≤ h E ( g) ≤ 1 gilt. h E ( g) gibt also die Summe der ersten g Balken des Histogramms des Bildes an. Anschließend skaliert man die Grauwerte des Bildes E mit der Skalierungsfunktion A( x, y) = 255 · h E ( E( x, y)) Erzeugen Sie mit O RASIS 3D einen Filtergraphen, der die neue Funktion enth¨alt, und wenden Sie sie auf die Bilder Kontrast.bmp und Schachbrett klein.bmp an. Entwickeln Sie eine dritte Funktion, die die Histogrammebnung implementiert. Zus¨atzlich sollten Sie sich das Histogramm des Ausgabebildes anzeigen lassen, um die Korrektheit der Implementierung zu uberpr ¨ ufen. ¨ Alle Zeilen des Histogramms sollten den gleichen Wert haben. An dieser Stelle sei noch mal auf die
C.3 Aufgabe 3: Grauwertbildverarbeitung – Bildpunktoperationen
203
bereits bestehende Funktionalit¨at der Anzeigekomponente (Viewer) hingewiesen (vgl. Anhang A.2). Erzeugen Sie mit O RASIS 3D einen Filtergraphen, der die neue Funktion enth¨alt, und wenden Sie sie auf die Bilder Kontrast.bmp und Schachbrett klein.bmp an. Vergleichen Sie alle (sechs) Ergebnisbilder der verschiedenen Funktionen. Welchen Einfluss haben die Operatoren auf die beiden Eingabebilder? Entwickeln Sie eine Funktion, die ein Bild um einen beliebigen (als Parameter zu spezifizierenden) Winkel rotiert. Benutzen Sie dazu das Gerust ¨ aus Aufgabe 1 (s. Anhang C.1) und fugen ¨ Sie mit dem Integrator einen Parameter ein, in dem der Winkel fur ¨ die Rotation ubergeben ¨ wird. Benutzen Sie zum Beispiel einen IntegerParameter mit einem Wertebereich von 0 bis 360 Grad. Innerhalb der Funktion kann man den Wert folgendermaßen auslesen: int Winkel = ((IntegerParameter*)tl->Items[TListnummer])->getValue(); Hinweis: Gehen Sie vom Ausgabebild aus und berechnen Sie die Position des Pixels im Eingabebild, das an die entsprechende Stelle im Ausgabebild projiziert werden muss. Bei umgekehrter Vorgehensweise entstehen sonst unter Umst¨anden Locher ¨ im Ergebnisbild. Der Drehpunkt soll in der Bildmitte liegen. Die Große ¨ des Ausgabebildes soll so angepasst werden, dass das rotierte Bild vollst¨andig hineinpasst. Die Großenanpassung ¨ wird wie folgt vorgenommen: outImage->setType(TYPE_8BITGRAY, newwidth, newheight); Pixel im Ausgabebild, zu denen keine entsprechenden Pixel im Eingabebild existieren, sollen auf 0 gesetzt werden. Erzeugen Sie mit O RASIS 3D einen Filtergraphen, der die neue Funktion enth¨alt, und wenden Sie sie auf das Bild Rotation.bmp an, das bereits mit installiert wurde. Besprechen Sie das Ergebnis. Was ist nach der Rotation zu beobachten? L¨asst sich das Ergebnis visuell ansprechender gestalten, indem zur Bestimmung der Grauwert nicht einfach nur gerundet, sondern zum Beispiel bilinear interpoliert wird (s. Seite 51)? Was musste ¨ zu beobachten sein?
204
¨ C Ubungsaufgaben
C.4 Aufgabe 4: Kanten ¨ Ziel dieser Ubung ist es, sich die Funktionsweise von Gl¨attungsoperatoren und Kantenoperatoren zu verdeutlichen. In den beiden ersten Teilaufgaben geht es um die Gl¨attung (Rauschminderung – siehe auch Abschnitt 4.2.2) von Bildern und in der dritten und vierten Aufgabe geht es um die Kantendetektion (siehe Kapitel 5). Fur ¨ die ersten drei Aufgaben benotigt ¨ man jeweils einen Parameter. Zur Vorverarbeitung von Bildern gehort ¨ das Gl¨atten. In der ersten Teilaufgabe soll ein Average-Gl¨attungsoperator erstellt werden. Dabei wird das Eingabebild mit einem Operator gefaltet. Im Ausgabebild steht der Mittelwert der Intensit¨atswerte des Faltungs-Fensters. ¨ Die Funktion soll mindestens die Operatorgroßen ¨ 3 × 3, 5 × 5, 7 × 7 unterstutzen. In der zweiten Teilaufgabe soll ein Median-Gl¨attungsoperator entwickelt werden. Bei diesem Gl¨attungs-Operator mussen ¨ die Intensit¨atswerte aus dem Fenster ausgelesen und sortiert werden. Im Ausgabebild wird dann der Intensit¨atswert an der mittleren Position der sortierten Liste eingetragen. ¨ Die Funktion soll mindestens die Operatorgroßen ¨ 3 × 3, 5 × 5, 7 × 7 unterstutzen. Testen Sie die beiden Gl¨attungsoperatoren auf den Bildern Kugel gauss 10.bmp und Kugel salzpfeffer.bmp. Schauen Sie sich auch das Zeilen-/Spaltenprofil der Bilder an. Interpretieren Sie die unterschiedlichen Ergebnisse der beiden Gl¨attungsoperatoren. Die dritte Teilaufgabe beinhaltet die Implementierung eines SobelKantenoperators (s. Seite 61). In Kapitel 5 wurden die horizontale und die vertikale Faltungsmasken erl¨autert. Wie sehen die Faltungsmasken fur ¨ die diagonalen Kanten aus? Implementieren Sie den Operator so, dass man mit dem StringComplexParameter die Richtungen einstellen kann. Dabei soll 1 fur ¨ senkrechte Kanten stehen, 2 fur ¨ horizontale, 3 fur ¨ diagonale Kanten von links oben nach rechts unten, 4 fur ¨ diagonale Kanten von links unten nach rechts oben, 5 fur ¨ senkrechte und waagerechte Kanten, 6 fur ¨ beide Diagonalen und 7 fur ¨ alle Richtungen. Als Antwort erh¨alt man nach der Summenbildung Werte zwischen −4 · 255 . . . + 4 · 255. Berechnen Sie den Wert fur ¨ das Ausgabebild bei einer Richtung in der folabs ( ∑ Operator ) . Bei der Kombination von zwei Masken werden die genden Form: 4 einzelnen Operatorantworten folgendermaßen kombiniert: Op 21 + Op 22 und bei der Kombination aller vier Filter entsprechend Op 21 + Op 22 + Op 23 + Op 24 . Achtung: es konnen ¨ theoretisch Werte großer ¨ 255 entstehen. Diese mussen ¨ dann auf 255 gesetzt werden. Implementieren Sie auch den Laplace-Kantenoperator. Erzeugen Sie mit O RASIS 3D einen Filtergraphen, der die Bilder Grau-
C.4 Aufgabe 4: Kanten
205
fl¨ achen.bmp und Graufl¨ achen salt.bmp jeweils mit den beiden Gl¨attungsoperatoren verbindet und diese vier Ausgabebilder jeweils mit den beiden Kantenoperatoren verknupft. ¨ Wenden Sie außerdem beide Kantenoperatoren auf die Ursprungsbilder an. Testen Sie den Filtergraphen mit verschiedenen Parametereinstellungen aus. Wie wirken die Kantenoperatoren bei unterschiedlichen Gl¨attungsoperatoren? Welcher Unterschied entsteht, wenn man keinen Gl¨attungsoperator vorschaltet? Welche Auswirkungen haben die Parameter der Kantenoperatoren? Erh¨alt man mehr Informationen, wenn man bei dem Sobel-Operator alle 4 Richtungen ausw¨ahlt?
¨ C Ubungsaufgaben
206
C.5 Aufgabe 5: Texturen I ¨ Ziel dieser Ubung ist, Bilder mit unterschiedlichen Texturen zu analysieren. Zun¨achst steht die Berechnung von Merkmalen punktbasierter Statistiken erster Ordnung im Vordergrund. Anschließend soll die Gerichtetheit von Texturen uber ¨ Richtungshistogramme ermittelt werden. In Abschnitt 6.2.2 wurden verschiedene Merkmale punktbasierter Statistiken erster Ordnung vorgestellt, die anhand des Grauwerthistogramms des zu untersuchenden Bildes bzw. Bildbereiches berechnet werden konnen. ¨ Die Aufgabe ist nun die Implementierung einer Funktion, die ein Grauwertbild als Eingabe erwartet und dazu den Mittelwert µ und die Standardabweichung σ 2 berechnet:
µ=
Ng −1
∑
i=0
i · h (i )
σ2 =
Ng −1
∑
i=0
(i − µ ) 2 · h (i )
mit Ng Anzahl der Graustufen und h(i ) relatives Histogramm des Eingabebildes. Wenden Sie diese Funktion auf die vier Bilder texture1.bmp texture4.bmp an, die mit installiert wurden (vgl. Abbildung C.2), um fur ¨ jedes einzelne von ihnen die obigen Merkmale zu berechnen.
Abbildung C.1: Beispieltexturen I
Vergleichen Sie die Ergebnisse fur ¨ die vier verschiedenen Texturbilder. Inwieweit sagen die jeweiligen Werte etwas uber ¨ den visuellen Eindruck der Texturen aus? Nehmen Sie bei Ihren Antworten zun¨achst Bezug auf die vier Texturbilder. Anschließend versuchen Sie, eine allgemeine Aussage bezuglich ¨ der Aussagekraft der Merkmale zu formulieren. Die n¨achste Aufgabe besteht darin, eine Funktion zu implementieren, die ein Grauwert-Texturbild als Eingabe erwartet und fur ¨ dieses Bild ein normiertes Texturrichtungshistogramm berechnet. Dabei handelt es sich um ein Histogramm uber ¨ die relative H¨aufigkeit der Richtungswinkel der lokalen Kanten an den Kantenpunkten im Bild. Zur Bestimmung der Kantenpunkte wird zun¨achst ein Prewitt-Operator in vertikaler und horizontaler Richtung auf jeden Punkt des Bildes angewendet und damit ∆ H und ∆V als horizontale und vertikale Grauwertdifferenz gemessen: ∆H =
−1 0 1 −1 0 1 −1 0 1
∆V =
1 0 −1
1 0 −1
1 0 −1
C.5 Aufgabe 5: Texturen I
207
Die Magnitude |∆G | und Richtung θ der lokalen Kante wird wie folgt bestimmt:
|∆G | =
( ∆ H ) 2 + ( ∆V ) 2
θ = tan−1 (
∆V π )+ ∆H 2
Es sollen nur Kantenpunkte in die Berechnung einfließen, deren Magnitude |∆G | einen Schwellwert t = 12 uberschreitet. ¨ Die Anzahl der Histogrammbalken sei ¨ Kantenrichtungen auf k Ink = 16. Somit muss der Wertebereich der moglichen tervalle abgebildet werden. Die Normierung des Histogrammes erfolgt mit der Anzahl der Kantenpunkte, deren Magnitude den Schwellwert ubersteigt. ¨ Die Funktion soll ein Bin¨arbild und einen Text ausgeben. In dem Bin¨arbild sollen alle Kantenpunkte, deren Magnitude den Schwellwert uberschreitet, ¨ gesetzt werden. Die textuelle Ausgabe soll die folgenden Informationen umfassen: Anzahl der Kantenpunkte, deren Magnitude den Schwellwert uberschreiten ¨ und in die Berechnung einfließen Werte der einzelnen Balken des normierten Richtungshistogramms Visualisierung des Richtungshistogramms (z.B. mit einer entsprechenden Anzahl #-Zeichen) Wenden Sie auch diese Funktion auf die vier Texturbilder aus Abbildung C.2 an und beschreiben Sie zu den Richtungshistogrammen der vier verschiedenen Bilder jeweils, was Ihnen daran auff¨allt bzw. worin sich die vier Ergebnisse unterscheiden. Was kann man ganz konkret fur ¨ jede der vier Texturen aus dem Richtungshistogramm ablesen? Welche allgemeinen Aussagen uber ¨ den visuellen Eindruck einer Textur kann man aus einem Richtungshistogramm ableiten?
¨ C Ubungsaufgaben
208
C.6 Aufgabe 6: Texturen II ¨ Ziel dieser Ubung ist, ein tieferes Verst¨andnis der Texturanalyse zu erlangen. Dieses Mal geht es um die Bestimmung einiger statistischer Texturmerkmale anhand von Coocurrence-Matrizen (siehe Abschnitt 6.2.2) sowie um die Berechnung der Texturenergie mit Hilfe von Laws-Filtermasken (siehe Abschnitt 6.2.3). Ihre Aufgabe ist es, eine Funktion zu implementieren, die ein Grauwertbild als Eingabe erwartet und fur ¨ dieses Bild vier Coocurrence-Matrizen fur ¨ die vier Richtungen 0◦ , 45 ◦ , 90 ◦ und 135 ◦ berechnet. Die Matrizen sollen mit der Anzahl der in die Berechnung einfließenden Bildpunktpaare normiert werden. Das bedeutet, dass eine Matrix von double-Werten benotigt ¨ wird. Ein kleiner Hinweis zu den Normierungsfaktoren: bei 0 ◦ ⇒ 2 · h · (w − 1) bei 90 ◦ ⇒ 2 · (h − 1) · w bei 45 ◦ und bei 135 ◦ ⇒ 2 · (h − 1) · (w − 1) wobei w die Breite und h die Hohe ¨ des Bildes bezeichnet. ¨ Matrix Der Abstand zwischen den zu betrachtenden Pixeln sei d = 1. Eine funfte soll bestimmt werden, die den Mittelwert uber ¨ die vier zuvor berechneten Richtungen enth¨alt. Diese funfte ¨ Matrix soll als Ausgabebild der Funktion visualisiert werden. Das bedeutet, dass die Abmessungen des Ausgabebildes der Anzahl der Grauwerte (256 × 256) entsprechen. Mit dem bereits bekannten Befehl lassen sich Bildgroße ¨ und Bildtyp anpassen: double* outImageData = (double*) outImage->setType(TYPE_DOUBLE, 256, 256); Die in der Matrix dargestellten H¨aufigkeiten werden in Grauwerten dargestellt. Hinweis: Achten Sie darauf, als Ausgabebild ein double-Bild zu benutzen. Bei der Visualisierung in O RASIS3D wird automatisch der kleinste Wert auf die Helligkeit 0 und der großte ¨ Wert auf die Helligkeit 255 gesetzt. Weiterhin sollen auf der gemittelten, normierten Coocurrence-Matrix folgende statistische Merkmale berechnet werden (siehe Abschnitt 6.2.2): ASM (Energie) ( f 1 ) Kontrast ( f 2 ) Entropie ( f 3 ) Verwenden Sie zum Testen die vier Bilder cooc1.bmp - cooc4.bmp. Probieren Sie die Funktion mit diesen vier Bildern aus. Sehen Sie sich die Visualisierung der Coocurrence-Matrizen an, und beschreiben Sie die Unterschiede der Matrizen fur ¨ die verschiedenen Eingabebilder. Welche visuellen Eigenschaften der Texturen spiegeln sich im Aussehen der Coocurrence-Matrizen wider?
C.6 Aufgabe 6: Texturen II
209
Abbildung C.2: Beispieltexturen II
Die n¨achste Aufgabe ist es, eine Funktion zu implementieren, die ein Grauwertbild als Eingabe erwartet und dieses mit den 4 Laws-Filtermasken L5E5, E5S5, L5S5 und R5R5 faltet (siehe Abschnitt 6.2.3 bzw. Abbildung 6.4). Die Zwischenergebnisbilder dieser 4 Faltungen werden zu einem Gesamtergebnis zusammengefasst, indem man fur ¨ jeden Bildpunkt die Wurzel aus der Summe der Quadrate der 4 Einzelergebnisse berechnet. Auch diese Operation liefert doubleWerte als Ergebnis. Das so erhaltene Ergebnisbild soll als Ausgabebild der Funktion angezeigt werden. Wenden Sie diese Funktion auf das Bild energie.bmp an und interpretieren Sie das Ergebnis. Wie kommt es, dass bestimmte Bereiche im Bild heller sind und andere dunkler? Wie steht diese Beobachtung im Zusammenhang mit dem visuellen Eindruck der Texturen?
¨ C Ubungsaufgaben
210
C.7 Aufgabe 7: Farbbildverarbeitung und Segmentierung ¨ Bei dieser Ubung geht es zun¨achst um die Einfuhrung ¨ in die Farbbildverarbeitung und die Konvertierung zwischen verschiedenen Farbsystemen. Diese Konvertierungen werden fur ¨ die Segmentierung benotigt. ¨ Ziel dieser Aufgabe ist das Auffinden der großten ¨ Farbfl¨ache im Bild. Das ist eine Art von Vereinzelung, was auch eine Teilaufgabe der Segmentierung ist. Farbbilder werden in der Regel als RGB-Bilder abgespeichert. Fur ¨ eine Segmentierung kann man sie in andere Farbr¨aume umrechnen. Zun¨achst sollte das Bild Tannenbaum.bmp eingelesen und in das HLS-Format umgerechnet werden. Intensit¨atswerte konnen ¨ aus Bildern gelesen bzw. in Bilder geschrieben werden, indem man folgende Anweisungen zur DLL-Programmierung verwendet: // Farbwerte auslesen VisionImage* inImage = (VisionImage*)tl->Items[InImage]; BYTE* inImageData = inImage->getDataAsRGB24(); red = inImageData[y*width*3 + x*3 + 0]; green = inImageData[y*width*3 + x*3 + 1]; blue = inImageData[y*width*3 + x*3 + 2]; // Farbwerte schreiben VisionImage* outImage = (VisionImage*)tl->Items[OutImage]; BYTE* outImageData = (BYTE*)outImage->setType(TYPE_RGB24); outImageData[y*width*3 + x*3 + 0] = red; outImageData[y*width*3 + x*3 + 1] = green; outImageData[y*width*3 + x*3 + 2] = blue; In Fellner (1992) l¨asst sich auf Seite 41f. ein kompletter Algorithmus zur Umrechnung finden. Der Algorithmus soll hier nicht aufgelistet werden. Zum HLS-Farbsystem ist an dieser Stelle noch Folgendes zu sagen: Die Farbe wird als Winkel von 0o − 359 o definiert. Die zu implementierende Funktion soll ein RGB-Bild als Eingabe erwarten und drei Bilder vom Typ double mit den Werten fur ¨ H, L und S als Ergebnisbilder liefern (vgl. auch Abschnitt 8.4.2). Implementieren Sie eine weitere Funktion, die das H-Bild als Eingabe erwartet und die Farbe der großten ¨ Fl¨ache im Bild ver¨andert. Ermitteln Sie dazu mit Hilfe eines Histogramms uber ¨ die Werte fur ¨ H die am h¨aufigsten vorkommende Farbe, und a¨ ndern Sie ihren Farbwinkel H um +45 o . Um das ver¨anderte Bild ausgeben zu konnen, ¨ muss das Bild wieder in den RGB-
C.7 Aufgabe 7: Farbbildverarbeitung und Segmentierung
211
Raum zuruckgerechnet ¨ werden. Dazu muss eine weitere Funktion implementiert sein, die ein H-, ein L- und ein S-Bild als Eingabe erwartet und ein RGB-Bild ausgibt. In Fellner (1992) l¨asst sich (ebenfalls auf Seite 41f.) ein kompletter Algorithmus zur Umrechnung finden. Wenn als Eingabe das ver¨anderte H-Bild, das L-Bild und das S-Bild verwendet wurden, sollte das Ergebnisbild wieder so aussehen wie das Eingangsbild, nur dass der Tannenbaum jetzt eine andere Farbe hat.
¨ C Ubungsaufgaben
212
C.8 Aufgabe 8: Kontur-Rekonstruktion und Segmentierung ¨ Bei dieser Ubung soll unser Verst¨andnis von Segmentierung erweitert bzw. vertieft werden. Als Erstes geht es um eine Segmentierung mit Hilfe lokaler Histogramme und eines Region-Growing-Verfahrens. Als Region-Growing-Verfahren soll ein adaptierter GRASSFIRE-Algorithmus genutzt werden. GRASSFIRE kennen wir bisher nur aus der Bin¨arbildverarbeitung (siehe Kapitel 3 bzw. Abschnitt ¨ 3.3.2). Die anschließende Aufgabe dient zur Ubung einer Konturrekonstruktion mittels der Hough-Transformation (s. Abschnitt 7.1.2). Mit Hilfe dieser Funktion konnen ¨ unvollst¨andige (kollineare) Konturen rekonstruiert werden. Um ein Region-Growing-Verfahren anwenden zu konnen, ¨ mussen ¨ zun¨achst die so genannten Startpunkte bestimmt werden. Ausgehend von den Startpunkten soll mittels GRASSFIRE die jeweilige Region Schritt fur ¨ Schritt erweitert ( abge” brannt“ ) werden, bis das Abbruchkriterium erfullt ¨ ist. Die Startpunkte sind mit Hilfe lokaler Histogramme zu bestimmen, d.h., dass das Bild vorher unterteilt werden muss. Die Startpunkte fur ¨ eine Region ergeben sich aus den Maxima im ¨ zugehorigen ¨ lokalen Histogramm.1 Da die Fl¨achen leicht verrauscht sind, gehoren Objekte mit einer Abweichung von ± 5 Intensit¨atsstufen zusammen. Es sind also folgende Arbeitsschritte auszufuhren: ¨ Aufteilung des Eingangsbildes in Teilbilder; in jedem Teilbild werden mit Hilfe eines lokalen Histogramms die lokalen Maxima bestimmt; fur ¨ jedes lokale Maximum wird ein Startpunkt bestimmt und in eine Liste geschrieben; die Startpunkte der Teilbilder werden verglichen und Startpunkte mit gleichem Intensit¨atswert (± Schwellwert) zusammengefasst, respektive uberz¨ ¨ ahlige Startpunkte aus der Liste geloscht; ¨ ausgehend von den ubrig ¨ gebliebenen Startpunkten wird das gesamte Bild segmentiert. Dabei werden die jeweiligen Nachbarpunkte mit dem Startpixel verglichen. Es wird zun¨achst der Mittelwert der gesamten Region berechnet (im ersten Schritt ist der Mittelwert gleich dem Intensit¨atswert des Startpixels). Hat der untersuchte Nachbarpixel eine Intensit¨at vom Mittelwert ± Schwellwert, wird er der Region zugeordnet. Die einzelnen Regionen werden anschließend mit unterschiedlichen Intensit¨atswerten ins Ausgabebild geschrieben. ¨ ¨ Uberlegen Sie bitte, welche fur ¨ Auswirkungen eine Anderung des Parameters hat. Welche Auswirkungen hat es, wenn er zu klein oder zu groß gew¨ahlt wird? An1
Ein Tipp: Vier lokale Histogramme konnen ¨ hier sinnvoll sein!
C.8 Aufgabe 8: Kontur-Rekonstruktion und Segmentierung
213
zuwenden ist die Funktion auf das Bild Graufl¨ achen.bmp. Bei der Hough-Transformation werden zun¨achst die gesetzten Pixel im Eingabebild gesucht und die moglichen ¨ Geraden basierend auf der Hesseschen Normalform in einen Akkumulator“geschrieben. Anschließend wird im Akkumulator ” nach Eintr¨agen großer ¨ einem Schwellwert gesucht und die entsprechenden Geraden in das Ergebnisbild eingezeichnet. Um den Aufwand in Grenzen zu halten, sollen nur die Richtungen 0.0◦ , 26.565 ◦, 45.0 ◦ , 63.435 ◦ , 90.0 ◦ , 116.565 ◦, 135.0 ◦ und 153.435 ◦ untersucht werden. Es sind also folgende Schritte auszufuhren: ¨ Suche gesetzte Pixel im Eingabebild. Berechne fur ¨ diese Pixel die Abst¨ande gem¨aß Hough-Transformation fur ¨ die acht Geraden. Schreibe die Ergebnisse in den Akkumulator. Suche im Akkumulator nach Eintr¨agen großer ¨ als ubergebener ¨ Schwellwert. Trage die Gerade mit dem Winkel und Abstand in das Ergebnisbild ein. Als Testbild eignet sich das Bild EinPixel.bmp, bei dem im Ausgabebild (Schwellwert = 1) alle acht Geraden durch den Punkt 41/41 laufen mussen. ¨ Anzuwenden ist diese Funktion letztendlich auf das Bild KonturSeg.bmp. Aus welchem Grund ist die Hough-Transformation wichtig? Denken Sie dabei daran, wie die Eingabebilder ublicherweise ¨ entstehen. Eine zus¨atzliche Aufgabe/Arbeit ist das Abschneiden der Geraden an den richtigen Stellen (eine Art Clipping). Die Geraden werden zun¨achst durch das ganze Bild gezogen und mussten ¨ anschließend so abgeschnitten werden, dass nur die Objektkonturen ubrig ¨ bleiben. Implementieren Sie eine solche Funktion.
¨ C Ubungsaufgaben
214
C.9 Aufgabe 9: Merkmalsextraktion ¨ Ziel dieser Ubung ist, aus Bildern bzw. zuvor segmentierten Bildbereichen Merkmale zu extrahieren, um auf diese Weise zu einer ersten einfachen Beschreibung ¨ der Bilder zu kommen. In der Ubung wollen wir uns auf die Bestimmung von geometrischen Merkmalen und Texturmerkmalen beschr¨anken. In Abschnitt 8.1 wurden eine Reihe geometrischer Merkmale, mit denen sich die Form eines Objektes n¨aher beschreiben l¨asst, vorgestellt. Die Aufgabe besteht darin, eine Funktion zu implementieren, die das Bild 3Koerper.bmp als Eingabe erwartet. Die Funktion soll fur ¨ die in dem Bild dargestellten Objekte folgende geometrische Merkmale bestimmen: Fl¨acheninhalt F Umfang U Formfaktor
U2 4π F
Geometrischer Schwerpunkt Formfaktor zwischen Innen- und Außenkreis um den geometrischen Schwerpunkt Um die Radien des Innen- und Außenkreises zu bestimmen, reicht es, wenn nur 8 Richtungen untersucht und hieraus das Maximum und Minimum bestimmt werden. Dies stellt fur ¨ die Losung ¨ der Aufgabe eine ausreichende Ann¨aherung dar. Die Ergebnisse sollen in ein Textobjekt geschrieben werden. Bevor Sie diese Merkmale bestimmen konnen, ¨ muss das Bild 3Koerper.bmp geeignet vorverarbeitet werden. Alle hierfur ¨ erforderlichen Operationen kennen Sie ¨ bereits aus den vorangegangenen Ubungen. Sie konnen ¨ sie also einfach in den Filtergraphen einbauen. Erl¨autern Sie, wie die Aufgabe gelost ¨ wurde, d.h. welche Funktionen wieder verwendet wurden und warum. Die n¨achste Aufgabe ist, eine Funktion zu implementieren, die ein GrauwertTexturbild als Eingabe erwartet und fur ¨ dieses Bild die vier Grey Level Run Length (GLRL)-Matrizen fur ¨ die Richtungen 0 ◦ , 45 ◦ , 90 ◦ und 135 ◦ berechnet (vgl. Abschnitt 6.2.2, Seite 71f.). Dabei sollen jedoch nur 16 (statt 256) Grauwerte unterschieden werden. Auf jeder der vier Matrizen sollen Sie dann die Merkmale RF1 und RF2 berechnen. Auf diese Weise erh¨alt man pro Bild 8 Werte als Ergebnis. Berechnen Sie die Matrizen und die 8 Werte fur ¨ jedes der Bilder (bild1.bmp bis bild4.bmp) und betrachten Sie die Ergebnisse. Beschreiben Sie, was die Merkmale messen. Welche Rolle spielt die Richtung dabei? Achten Sie dabei besonders darauf, ob sich die Werte eines Merkmals fur ¨ die verschiedenen Richtungen fur ¨ das aktuell betrachtete Bild nur wenig oder st¨arker unterscheiden. Bei welchen Bildern sind die Unterschiede gering und bei welchen st¨arker? Woran liegt das?
C.9 Aufgabe 9: Merkmalsextraktion
215
Nun soll noch der Kontrast der Textur berechnet werden: KF = mit 1 z F ( x, y) = kl und
σ F2 ( x,
1 y) = kl − 1
k 2
σ F2 ( x, y) z F ( x, y)
k 2
l 2
∑ ∑
E( x + i, y + j)
i =− 2k j =− 2l l 2
∑ ∑
( E( x + i, y + j) − z F ( x, y)) 2 .
i =− 2k j =− 2l
Zur Vereinfachung sei die Fenstergroße ¨ F gleich den Abmessungen des Texturbildes. Geben Sie das Ergebnis fur ¨ den Kontrast ebenfalls in dem Textobjekt aus. Wann hat eine Textur einen eher starken und wann einen eher schwachen Kontrast? Wenden Sie die Funktion auf die Bilder (bild1.bmp bis bild4.bmp) an und interpretieren Sie die Ergebnisse.
¨ C Ubungsaufgaben
216
C.10 Aufgabe 10: Klassifikation / Objekterkennung Als Abschluss des klassischen Bildverarbeitungsprozesses soll nun (fast) der ganze Weg der Bildverarbeitung begangen werden. Das heißt in unserem Fall: von der Bildsegmentierung uber ¨ die Merkmalsextraktion zur Objekterkennung. Dazu soll zun¨achst ein simpler Klassifikator realisiert werden. Im Anschluss daran sollen Sie Objekte aus Bildern segmentieren und die Merkmale zu den Objekten bestimmen. Im letzten Schritt sollen Sie die Objekte anhand dieser Merkmale mittels eines euklidischen Abstandsklassifikators (Minimum-Distanz-Klassifikator) Kategorien zuordnen. Wie bereits erw¨ahnt, braucht man zun¨achst einige Testbilder fur ¨ das Training des Klassifikators. Mit Hilfe dieser Bilder sollen Sie zun¨achst fur ¨ die einzelnen Objekte folgende Merkmale berechnen: Fl¨ache Umfang Formfaktor Kontrast Mittelwert Fur ¨ jedes Objekt erhalten Sie drei Testbilder. Die Ergebnisse konnen ¨ dann gemittelt und als Prototypen fur ¨ die anschließende Objektklassifikation genutzt werden. Prototypen gewinnt man zum Beispiel durch Mittelwertberechnung. Bei der Objekterkennung muss man zun¨achst die Objekte aus dem Testbild segmentieren. Anschließend werden fur ¨ jedes Objekt die oben genannten Merkmale bestimmt und mittels folgender Formel mit den Testobjekten verglichen: Fehler =
∑( MerkmalPrototyp − MerkmalOb jekt )2
(C.1)
Das zu untersuchende Objekt wird dann der Objektklasse zugeordnet, bei der der Fehler am geringsten ist. Das Ergebnis der Fehlerberechnung und die Zuordnung sollen in eine Datei geschrieben werden. Wurde ¨ sich fur ¨ diese Aufgabe das Klassifikationsergebnis a¨ ndern, wenn statt des Abstandes zum Prototypen der Abstand zum n¨achsten Nachbarn berechnet wurde? ¨ Begrunden ¨ Sie die Antwort!
C.11 Aufgabe 11: Bewegungsanalyse / Verschiebungsvektoren
217
C.11 Aufgabe 11: Bewegungsanalyse / Verschiebungsvektoren Ziel dieser Aufgabe ist, ein Verschiebungsvektorfeld fur ¨ zwei zeitlich aufeinander folgende Bilder zu bestimmen. Dazu soll ein Blockvergleichsverfahren (siehe Abschnitt 10.3.2) implementiert werden. Implementieren Sie eine Funktion fur ¨ O RASIS3D , die ein Blockvergleichsverfahren realisiert. Die Funktion erwartet zwei Grauwertbilder als Eingabe. Das erste soll ¨ zun¨achst in quadratische Blocke ¨ der Große ¨ n × n eingeteilt und die Blockgroße uber ¨ einen Parameter gesteuert werden. Nun soll fur ¨ jeden Block die Position im zweiten Eingabebild bestimmt werden, bei der die Grauwerte am besten mit den Grauwerten des aktuellen Blocks ubereinstimmen. ¨ Sie sollen die Suche soll auf einen quadratischen Suchbereich um die Ursprungsposition des aktuellen Blocks beschr¨anken. Auch die Große ¨ des Suchbereichs soll parametrierbar sein. Beachten Sie, dass der Suchbereich fur ¨ Blocke ¨ am Bildrand kleiner sein kann. Nun mussen ¨ ¨ Sie die Ahnlichkeit des aktuellen Blocks zu allen moglichen ¨ Positionen innerhalb des Suchbereiches bestimmen. Dabei soll als Abstandsmaß der quadratische und ¨ der absolute Fehler zur Auswahl stehen. Die Ahnlichkeit ist dort am großten, ¨ wo der Abstand minimal ist. Der Verschiebungsvektor fur ¨ den Block ergibt sich aus der Differenz der aktuellen Position des Blocks im ersten Bild und der Position ¨ mit der großten ¨ Ahnlichkeit im zweiten Bild. Somit erh¨alt man pro Block einen Verschiebungsvektor. Die resultierenden Verschiebungsvektoren sollen nun noch visualisiert werden. Die einfachste Moglichkeit ¨ ist die Darstellung mit Hilfe zweier Ausgabebilder der Funktion, die das Ausmaß der Verschiebung in x- bzw. y-Richtung uber ¨ Grauwerte darstellen. Außerdem konnen ¨ L¨ange und Richtung der Vektoren berechnet und diese Werte ebenfalls als Grauwertbilder visualisiert werden. Wesentlich anschaulicher ist allerdings eine Visualisierung der Vektoren als Nadelbild, das separat visualisiert oder in eines der der beiden Originalbilder eingeblendet wird. Wenden Sie die Funktionen auf die Bilder Block334.bmp bzw. Block335.bmp an und interpretieren Sie die Ergebnisse. In welchen Bildbereichen wurde Bewegung festgestellt und in welche Richtung(en) zeigen die Vektoren? Experimentieren Sie auch mit verschiedenen Parametereinstellungen fur ¨ die Große ¨ der Blocke ¨ und des Suchbereichs, sowie mit den beiden Abstandsmaßen. Wie beeinflusst die Wahl der Parameter das Ergebnis?
218
¨ C Ubungsaufgaben
C.12 Aufgabe 12: Fourieranalyse Ziel dieser Aufgabe ist, dass Sie sich mit der Diskreten Fourier-Transformation (DFT) und der Inversen Diskreten Fourier-Transfomation (IDFT) vertrauter machen. Es sind die DFT und die IDFT zu implementieren. Folgendes ist zu beachten: 1. Die Frequenzanteile, die berechnet werden konnen, ¨ h¨angen von der Bildgroße ¨ ab, d.h. der Anzahl der Zeilen bzw. Spalten. 2. Da die Berechnung aufw¨andig ist, sollten zun¨achst nur kleine Beispielbilder benutzt werden (DFT Test.bmp). ¨ 3. Eine erste Uberpr ufung ¨ der Korrektheit der Transformationen erh¨alt man, wenn zun¨achst die DFT und dann die IDFT ausgefuhrt ¨ wird. Das resultierende Bild muss gleich seinem Original sein. Die Implementierung ist um einen Bandpassfilter zu erweitern. Wie konnen ¨ mit Hilfe des Bandpassfilters ein Tiefpassfilter und ein Hochpassfilter simuliert werden? Es ist das Bild DFT Test.bmp mit dem Hochpassfilter und dem Tiefpassfilter zu bearbeiten. Als Schwellen fur ¨ die Filter sind die Werte 2, 5 und 20 zu benutzen. Interpretieren Sie die jeweiligen Ergebnisse. Was bewirken die implementierten Hochpass- und Tiefpassfilter?
Literaturverzeichnis [Abmayr 1994] A BMAYR, W.: Einfuhrung ¨ in die digitale Bildverarbeitung. Stuttgart : B.G. Teubner, 1994 [Aloimonos 1993] A LOIMONOS, Y. (Hrsg.): Active Perception. Lawrence Erlbaum Associates, 1993 ¨ ¨ , H.-P. (Hrsg.) ; V OGTLE [B¨ahr und Vogtle ¨ 1991] B AHR , T. (Hrsg.): Digitale Bildverarbeitung: Anwendung in Photogrammetrie, Kartographie und Fernerkundung. Wichmann, 1991 [Baijcsy 1988] B AIJCSY, R.: Active Perception. In: Proceedings of the IEEE 76 (1988), Nr. 8, S. 996–1004 [Ballard und Brown 1982] B ALLARD, D.H. ; B ROWN, C.M.: Computer Vision. Englewood Cliffs, New Jersey : Prentice-Hall, Inc., 1982 [Berk u. a. 1982] B ERK, T. ; B ROWNSTON, L. ; K AUFMAN, A.: A human factors study of color notation systems for computer graphics. In: IEEE CG&A 2 (1982), Nr. 3, S. 37–44 [Blanz 1993] B LANZ, W.E.: Design and Implementation of a Low-level Image Segmentation Architecture – LISA. In: Machine Vision Applications 6 (1993), S. 181–190 [Bloomberg und Vincent 1995] B LOOMBERG, D. ; V INCENT, L.: Blur hit-miss Transform and its Use in Document Image Pattern Detection. In: V INCENT, L. (Hrsg.) ; B AIRD, H. (Hrsg.): Document Recognition II Bd. SPIE-2422 Proceedings of SPIE – Society of Photo-Optical Instrumentation Engineers (Veranst.), 1995, S. 278–292 [Blostein und Ahuja 1989] B LOSTEIN, D. ; A HUJA, N.: Shape from Texture: Integrating Texture-Element and Surface Estimation. In: IEEE Transactions on Pattern Analysis and Machine Intelligence PAMI-11 (1989), Nr. 12, S. 1233–1251 [Bosi und Goldberg 2003] B OSI, M. ; G OLDBERG, R.E.: The Kluwer International Series in Engineering and Computer Science. Bd. Band 721: Introduction to Digital Audio Coding and Standards. Kluwer, 2003
220
Literaturverzeichnis
[Brigham 1982] B RIGHAM, E.O.: FFT Schnelle Fourier-Transformation. Munchen ¨ : Oldenbourg, 1982 [Brodatz 1966] B RODATZ, P.: Textures – A Photographic Album for Artists and Designers. Dover, New York : Reinhold, 1966 [Broggi 1995] B ROGGI, A.: Parallel and Local Feature Extraction: A Real-time Approach to Road Boundary Detection. In: IEEE Transactions on Image Processing 4 (1995), Nr. 2, S. 217–223 [Canny 1986] C ANNY, J.: A Computational Approach to Edge Detection. In: IEEE Transaction on Pattern Analysis and Machine Intelligence PAMI-8 (1986), Nov., Nr. 6, S. 679–698 [Chen u. a. 1995] C HEN, Y. ; N IXON, M. ; T HOMAS, D.: Statistical geometrical features for texture classification. In: Pattern Recognition 28 (1995), Nr. 4, S. 537– 552 ´ Colorimetry − Colorim etrie − [CIE 1971] CIE P UBLICATION (Hrsg.): Farbmessung. 1971. – Bureau Central de la CIE No. 15 (E-1.31), Paris [Conners und Harlow 1980a] C ONNERS, R.W. ; H ARLOW, C.A.: A Theoretical Comparison of Texture Algorithms. In: IEEE Transaction on Pattern Analysis and Machine Intelligence 2 (1980), Nr. 3, S. 204–222 [Conners und Harlow 1980b] C ONNERS, R.W. ; H ARLOW, C.A.: Toward a Structural Textural Analyzer Based on Statistical Methods. In: Computer Vision, Graphics, and Image Processing 12 (1980), S. 224–256 [Cross und Jain 1983] C ROSS, G.R. ; J AIN, A.K.: Markov Random Field Texture Models. In: IEEE Transaction on Pattern Analysis and Machine Intelligence 5 (1983), Nr. 1, S. 25–39 [Dorffner 1991]
D ORFFNER, G.: Konnektionismus. Teubner, Stuttgart, 1991
[Duda und Hart 1973] D UDA, R.O. ; H ART, P.E.: Pattern Classification and Scene Analysis. New York, Chichester, Brisbane, Toronto, Singapore : John Wiley & Sons, 1973 [Duda u. a. 2001] D UDA, R.O. ; H ART, P.E. ; S TORK, D.G.: Pattern Classification. 2. Auflage. New York : John Wiley & Sons, 2001 [Edwards u. a. 1999] E DWARDS, H.G.M.L. ; D RUMMOND, L. ; R USS, J.: Fourier transform Raman Spectroscopic study of prehistoric rock paintings from Big Bend, Texas. In: Journal of Raman Spectroscopy 30 (1999), S. 421–428 [EPSON Deutschland GmbH 2001] EPSON D EUTSCHLAND G MB H: http:// www.epson.de/about/scanner/. 2001
Literaturverzeichnis
221
[Fellner 1992] F ELLNER, W.D.: Computergrafik. Zurich ¨ : BI Wissenschaftsverlag, 1992
Mannheim, Leipzig, Wien,
[FhG-IIS-A 1996] F H G-IIS-A, Abt. E.: Texbed – Texturdatenstichproben. 1996. – Available via ftp from ftp://ftp.iss.fhg.de/pub/textbed [Foley u. a. 1993] F OLEY, J. ; D AM, A. van ; F EINER, S.K. ; H UGHES, J.F.: Computer Graphics – Practice and Principles. Reading Mass., Menlo Park CA, New York : Addison-Wesley Publishing Company, 1993. – Second Edition ¨ [Franke 1989] F RANKE, U.: PROMETHEUS - wissensbasierte Systeme eroffnen neue Perspektiven im Straßenverkehr. In: B RAUER, W. (Hrsg.) ; F REKSA, C. (Hrsg.): Wissensbasierte Systeme. Berlin, Heidelberg, New York : Springer, 1989, S. 363–376. – Informatik Fachberichte 277 [Frischholz 1999] F RISCHHOLZ, R.: Motion Tracking. In: Handbook of Computer Vision and Applications Bd. 3, Systems and Applications. San Diego, London, Boston, New York, Sydney, Tokyo, Toronto : Academic Press, 1999, S. 329–344 [Fritzsche 1984] F RITZSCHE, G.: Theoretische Grundlagen der Nachrichtentechnik. Berlin : VEB Technik, 1984. – 3., stark bearbeitete Auflage [Galloway 1975] G ALLOWAY, M.: Texture Analysis using Gray Level Run Lengths. In: Computer Graphics and Image Processing 4 (1975), S. 172–179 [Gibson 1979] G IBSON, J.J.: The Ecological Approach To Visual Perception. Boston : Houghton Mifflin Company, 1979 ¨ Wien, Balti[Gibson 1982] G IBSON, J.J.: Wahrnehmung und Umwelt. Munchen, ¨ more : Urban & Schwarzenberg, 1982. – Ubersetzung von Gibson (1979) [Gool u. a. 1985] G OOL, M.van ; D EWAELE, P. ; O OSTERLINK, A.: Texture Analysis anno 1983. In: Computer Vision, Graphics, and Image Processing 29 (1985), S. 336–357 ¨ , G. (Hrsg.): Einfuhrung ¨ in die Kunstliche ¨ Intelligenz. 2. Auflage. [Gorz ¨ 1995] G ORZ Bonn, Paris, Reading Mass. : Addison-Wesley, 1995 [Haber¨acker 1985] Hanser, 1985
¨ , P.: Digitale Bildverarbeitung. Munchen, ¨ Wien : H ABER ACKER
[Haralick u. a. 1973] H ARALICK, R.M. ; S HANGMUGAM, K. ; D INSTEIN, I.: Textural Features for Image Classification. In: IEEE Transactions on Systems, Man, and Cybernetics SMC-3 (1973), Nr. 6, S. 610–621 [Hermes u. a. 2000] H ERMES, Th. ; M IENE, A. ; K REYENHOP, P.: On Textures: A Sketch of a Texture-Based Image Segmentation Approach. In: D ECKER, R. (Hrsg.) ; G AUL, W. (Hrsg.): Classification and Information Processing at the Turn of the Millenium. Bielefeld, Germany, 10 - 12 March 2000, S. 210–218. – Proc. 23rd Annual Conference Gesellschaft fur ¨ Klassifikation e.V. 1999
222
Literaturverzeichnis
[Horn und Schunck 1981] H ORN, B.K.P. ; S CHUNCK, B.G.: Determining Optical Flow. In: Artificial Intelligence 17 (1981), S. 185–204 [Hsia 1973] H SIA, T.C.: A Note on Invariant Moments in Image Processing. In: IEEE Transactions on Systems, Man, and Cybernetics SMC-11 (1973), Nr. 12, S. 831–834 [Hu 1962] H U, M.-K.: Visual Pattern Recognition by Moment Invariants. In: IRE Trans. IT-8 (1962), S. 179–187 ¨ , H. ; S ZAPANSKI, R.: Elektrotechnik [Hubscher ¨ und Szapanski 1981] H UBSCHER – Fachstufe 1 Nachrichtentechnik. Braunschweig : Westermann, 1981 ¨ , B.: Digitale Bildverarbeitung. 2. vollig ¨ uberarbeitete ¨ Auflage. [J¨ahne 1991] J AHNE Berlin, Heidelberg, New York : Springer, 1991 [Jiang und Bunke 1997] J IANG, X. ; B UNKE, H.: Dreidimensionales Computersehen. Berlin, Heidelberg : Springer, 1997 [Julesz 1981] J ULESZ, B.: Textons, the Elements of Texture Perception, and Their Interactions. In: Nature (1981), Nr. 290, S. 91–97 [Julesz u. a. 1973] J ULESZ, B. ; G ILBERT, E.N. ; S HEPP, L.A. ; F RISCH, H.L.: Inability of humans to discriminate between visual textures that agree in second-order statistics – Revisited. In: Perception 2 (1973), S. 391–405 [Khotanzad und Chen 1989] K HOTANZAD, A. ; C HEN, J.-Y.: Unsupervised Segmentation of Textured Images by Edge Detection in Multidimensional Features. In: IEEE Transaction Pattern Analyses and Machine Intelligence 11 (1989), Nr. 4, S. 414–421 [Kirsch 1971] K IRSCH, R.: Computer Determination of the Constituent Structure of biological Images. In: Comput. Biomed. Res. 4 (1971), Nr. 3, S. 315–328 [Klette und Zamperoni 1995] K LETTE, R. ; Z AMPERONI, P.: Handbuch der Operatoren fur ¨ die Bildbearbeitung. Braunschweig, Wiesbaden : Vieweg, 1995. – 2., uberarbeitete ¨ und erweiterte Auflage [Korn 1988] K ORN, A.: Toward a Symbolic Representation of Intensity Changes in Images. In: IEEE Transaction on Pattern Analysis and Machine Intelligence 10 (1988), S. 610–625 ¨ , C. ; WAGNER, T.: Automatic Con[Kuhlbeck ¨ und Wagner 1996] K UHLBECK figuration of Systems for Surface Inspection. In: Proceedings of Machine Vision Application in Industrial Inspection (SPIE) Bd. SPIE-3029 SPIE – Society of PhotoOptical Instrumentation Engineers (Veranst.), 1996, S. 128–138
Literaturverzeichnis
223
¨ [Kummerlen ¨ u. a. 1999] K UMMERLEN , B. ; D AUWE, S. ; S CHMUNDT, D. ; S CHURR, U.: Thermography to Measure Water Relations of Plant Leaves. In: Handbook of Computer Vision and Applications Bd. 3, Systems and Applications. San Diego, London, Boston, New York, Sydney, Tokyo, Toronto : Academic Press, 1999, S. 763–781 [Laine und Fun 1993] L AINE, A. ; F UN, J.: Texture classification by wavelet packet signatures. In: IEEE Transaction on Pattern Analysis and Machine Intelligence 15 (1993), Nr. 11, S. 1186–1191 [Laws 1979] L AWS, K.: Texture Energy Measures. In: Image Understanding Workshop, 1979, S. 47–51 [Laws 1980] L AWS, K.: Rapid Texture Identification. In: Image Processing for Missile Guidance Bd. 238. San Diego, CA, USA, July 29 - August 1 1980, S. 367– 380 [Leu und Wee 1985] L EU, J.-G. ; W EE, W.G.: Detecting the Spatial Structure of Natural Textures Based in Shape Analysis. In: Computer Vision, Graphics, and Image Processing 31 (1985), S. 67–88 [Lin und Gottschalk 1998] L IN, M.C. ; G OTTSCHALK, S.: Collision Detection Between Geometric Models: A Survey. In: In Proc. of IMA Conference on Mathematics of Surfaces, 1998, S. 37–56 [Liu 1997] L IU, F.: Modeling Spatial and Temporal Textures, Massachusetts Institute of Technology (MIT), Dissertation, 1997. – Erschienen als technischer Bericht TR-462 am MIT [Lu und Fu 1978] L U, S.Y. ; F U, K.S.: A Syntactic Approach to Texture Analysis. In: Computer Vision, Graphics, and Image Processing 7 (1978), S. 303 – 330 [Marr 1982]
M ARR, D.: Vision. New York : W.H. Freeman and Company, 1982
¨ , S. ; N ICKOLAY, B.: Morphological Image [Muller ¨ und Nickolay 1994] M ULLER Processing for the Recognition of Surface Defects. In: A HLERS, R.-J. (Hrsg.) ; B RAGGINS, D. (Hrsg.) ; K AMERMAN, G. (Hrsg.): Automated 3-D and 2-D Vision Bd. SPIE-2249 Proceedings of SPIE – Society of Photo-Optical Instrumentation Engineers (Veranst.), 1994, S. 298–307 [Neumann 1995] N EUMANN, B.: Bildverstehen. In: (G¨orz, 1995). Bonn, Paris, Reading Mass. : Addison-Wesley, 1995, S. 559–582 [Niemann 1983] Springer, 1983
N IEMANN, H.: Klassifikation von Mustern. Berlin, Heidelberg :
[Nyquist 1928] N YQUIST, H.: Certain topics in telegraph transmission theory. In: Trans. AIEE 47 (1928), April, S. 617–644
224
Literaturverzeichnis
[Optel.com 2004] O PTEL . COM: deutsch/methode.htm. 2004 [Ostwald 1931] 1931
http://www.optel.pl/software/
O STWALD, W.: Colour Science. Windsor & Windsor, London,
[Panjwani und Healey 1995] PANJWANI, D.K. ; H EALEY, G.: Markov Random Field Models for Unsupervised Segmentation of Textured Color Images. In: IEEE Transaction on Pattern Analysis and Machine Intelligence PAMI-17 (1995), Nr. 10, S. 939–954 ¨ [Pietik¨ainen u. a. 1982] P IETIK AINEN , M. ; R OSENFELD, A. ; D AVIS, L.S.: Texture Classification Using Averages of Local Pattern Matches. In: Proceedings of Int. Conference on Pattern Recognition. Munich, Germany, October 19-22 1982, S. 301– 303 [Ponamgi u. a. 1997] P ONAMGI, M. K. ; M ANOCHA, D. ; L IN, M. C.: Incremental Algorithms for Collision Detection Between Polygonal Models. In: IEEE Transactions on Visualization and Computer Graphics 3 (1997), Nr. 1, S. 51–64 [Pratt 1978] P RATT, W.K.: Digital Image Processing. New York : John Wiley and Sons, 1978 [Rao 1990] R AO, A.R.: A Taxonomy for Texture Description and Identification. New York, Berlin, Heidelberg : Springer, 1990 ¨ und Anwendungen. McGraw-Hill Book [Rich 1988] R ICH, E.: KI – Einfuhrung ¨ Company GmbH, 1988. – Ubers.: J. Danielsen und P. Schonau ¨ [Roberts 1965] R OBERTS, L.G.: Machine Perception of Three-Dimensional Solids. In: T IPPET ET AL . (Hrsg.): Optical and Electro-Optical Information Processing. MIT-Press, 1965, S. 159–197 [Rojas 1993]
R OJAS, R.: Theorie der neuronalen Netze. Springer Verlag, 1993
[Rosenfeld und Kak 1982] R OSENFELD, A. ; K AK, A.C.: Digital Picture Processing. New York : Academic Press, 1982 [Roß u. a. 1995] R OSS, Th. ; H ANDELS, H. ; B USCHE, H. ; K REUSCH, J. ; W OLFF, ¨ H.H. ; P OPPL , S.J.: Automatische Klassifikation hochaufgeloster ¨ Oberfl¨achenprofile von Hauttumoren mit neuronalen Netzen. In: S AGERER, G. (Hrsg.) ; P OSCH, S. (Hrsg.) ; K UMMERT, F. (Hrsg.): Mustererkennung 1995 Bd. 17. Bielefeld : Springer-Verlag, 13. 15. September 1995, S. 379–386 [Schmidt 1980] S CHMIDT, R.F. (Hrsg.): Grundriß der Sinnesphysiologie. Berlin, Heidelberg, New York : Springer, 1980. – 4., korrigierte Auflage [Schultze 1975] S CHULTZE, W. (Hrsg.): Farblehre und Farbmessung. Berlin, Heidelberg, New York : Springer, 1975. – 3. Auflage
Literaturverzeichnis
225
[Schulz-Mirbach 1996] S CHULZ -M IRBACH, H.: Ein Referenzdatensatz zur Evaluierung von Sichtprufungsverfahren ¨ fur ¨ Textiloberfl¨achen / TU HamburgHarburg. 1996 (Technische Informatik I). – Forschungsbericht [Sedgewick 1992] 1992
S EDGEWICK, R.: Algorithmen in C. Bonn : Addison-Wesley,
[Selfridge 1955] S ELFRIDGE, O.G.: Pattern Recognition and Modern Computers. In: Proc. of Western Joint Comp. Conf., 1955, S. 91–93 [Shannon 1949] S HANNON, C.E.: Communication in the presence of noise. In: Proc. Institute of Radio Engineers 37 (1949), Nr. 1, S. 10–21 [Soille 1998] S OILLE, P.: Morphologische Bildverarbeitung: Grundlagen, Methoden, Anwendungen. Berlin, Heidelberg, New York : Springer, 1998 The Fourier Transform. 2001. – [Stootman 2001] S TOOTMAN, F.: http://www.atnf.csiro.au/whats_on/workshops/synthesis2001/ material/four%ier.doc [Teague 1980] T EAGUE, M.R.: Image analysis via the general theory of moments. In: J. Opt. Soc. Am. 70 (1980), Nr. 8, S. 920–930 [Thompson u. a. 1999] T HOMPSON, M. ; L UETHI, S. ; K AELIN, X. ; N IGG, S.: Effects of Running Shoe Sole Construction on Dynamic Foot Stability. In: Proc. of 3rd Annual Symposium on Footwear Biomechanics. Tokyo, Japan, 1999 [Tomita u. a. 1982] T OMITA, F. ; S HIRAI, Y. ; T SUJI, S.: Description of Textures by a Structural Analysis . In: IEEE Transaction on Pattern Analysis and Machine Intelligence 4 (1982), Nr. 2, S. 183–191 [Unser 1986] U NSER, M.: Sum and Difference histograms for texture Analysis. In: IEEE Transaction on Pattern Analysis and Machine Intelligence 8 (1986), S. 118– 125 [Vilnrotter u. a. 1986] V ILNROTTER, F.M. ; N EVATIA, R. ; P RICE, K.E.: Structural Analysis of Natural Textures. In: IEEE Transaction on Pattern Analysis and Machine Intelligence 8 (1986), Nr. 1, S. 76–89 ¨ industrielle Oberfl¨achenprufauf¨ [Wagner 1996] WAGNER, T.: Texturanalyse fur gaben. In: Sitzungsberichte des 3ten Heidelberger Bildverarbeitung-Forums – Schwerpunktthema: Texturanalyse. Heidelberg, Germany, 1. Juli 1996, S. 55–75 [Wahl 1989] WAHL, F.M.: Digitale Bildsignalverarbeitung. Berlin, Heidelberg : Springer, 1989 [Waltz 1975] WALTZ, D.: Understanding Line Drawings of Scenes with Shadows. In: W INSTON, P.H. (Hrsg.): The Psychology of Computer Vision. McGraw Hill, 1975, S. 19–91
226
Literaturverzeichnis
[Wechsler 1980] W ECHSLER, H.: Texture Analysis – A Survey. In: Signal Processing 2. North-Holland Publishing Company, 1980, S. 271–282 [Weisz u. a. 2000] W EISZ, M. ; H ELSCH, G. ; F RISCHAT, H.G. ; H ELMING, K.: Textures in glass ceramics of the system Li2O-Al2O3-SiO2. 2000 (Glastech. Ber. Glass Sci. Technol. 73 C1). – Forschungsbericht [Wen und Fryer 1991] W EN, W. ; F RYER, R.J.: Multiscale Texture Element Detection. In: Pattern Recognition Letters 12 (1991), S. 793–804 [Weszka u. a. 1976] W ESZKA, J.S. ; D YER, C.R. ; R OSENFELD, A.: A comparative study of texture measures for terrain classification. In: IEEE Transaction on Systems, Man, and Cybernetics SMC-6 (1976), S. 269–285 [Winston 1993] Third Edition [Wirth 1983] 1983
W INSTON, P.H.: Artificial Intelligence. Addison-Wesley, 1993. –
W IRTH, N.: Algorithmen und Datenstrukturen. Stuttgart : Teubner,
[wissen.de 2002]
WISSEN . DE :
http://www.wissen.de. 2002
[Witkin 1983] W ITKIN, A.P.: Scale-Space Filtering. In: Proceedings of the 8th Intern. Joint Conf. on Artificial Intelligence (IJCAI-83). Karlsruhe, August, 8-12 1983, S. 1019–1022 [Zamperoni 1989] Z AMPERONI, P.: Methoden der digitalen Bildsignalverarbeitung. Braunschweig : Vieweg, 1989 [Zell 1994]
Z ELL, A.: Simulation Neuronaler Netze. Bonn : Addison-Wesley, 1994
Stichwortverzeichnis a posteriori-Wahrscheinlichkeit, 122 a priori-Wahrscheinlichkeit, 121 Abstandsmaß City-Block, 128 Euklid, 128 Schachbrett, 128 Abtasttheorem, 150 achromatisches Modell, 107 additive Farbmischung, 107 affine Transformation, 50, 51 Kombinierte Transformationen, 53 Rotation, 52 Skalierung, 53 Translation, 52 Aliasing, 151 Ambiguity-Funktion, 120 Amplitude, 143 Amplitudenspektrum, 149 Average-Filter, 46 Bandpass, 152 Bayes’sche Entscheidungsregel, 123 Bereichsverschmelzung, 95 Bereichswachstumsverfahren, 84, 89 best¨arkendes Lernen, 116 Betrag der Richtungsdifferenz, 60 Betragsspektrum, 149 Bewegungsanalyse, 129 Bezugspunkt, 46, 47 Bildgebung, 5 Bildrestauration, 15, 35 Bildverstehen, 1 Bildvorverarbeitung, 15
bilineare Interpolation, 51 Formel, 51 Bin¨arbild, 21 Binarisierung, 21 Blendenproblem, 129 Blob-Coloring, 97 Blockswelt, 3 Blow, 24 CIE, 108 Cluster, 115 CNS, 112 Color Naming System, 112 contouring, 14 Densitometrische Merkmale, 100, 104 DFT, 150 Diascanner, 10 Differenzbild, 130 Dilatation, 25, 28 Diracfunktion, 148 Diskrete Ableitung 1. Ordnung, 58 2. Ordnung, 64 Diskretisierung, 12 Diskriminantenfunktion, 115, 117, 123 Distanzfunktion, 117, 126 Durchlichtscanner, 10 Einseitiger Kantenoperator, 63 Einzugsscanner, 10 Erosion, 25, 28 Exzess, 105
228
Faltung, 44 diskret, 45 Faltungsintegral, 148 Faltungsoperator, 148 Faltungstheorem, 148 Farbkanten, 57 Farblehre, 106 Farbmerkmale, 106 Farbmischung, 107 Farbmodell, 106, 109 CMY, 110 HLS, 112 HSV, 111 RGB, 109 Farbs¨attigung, 111 Farbton, 106, 107, 111 Fast Fourier Transform, 150 FFT, 150 Fl¨achenschwerpunkt, 102 Flachbettscanner, 10 Fotoscanner, 10 Fourierkoeffizienten, 146 Fourierreihe, 146 Fouriertransformation, 147, 148 inverse, 148 Frequenz, 141 Gaußfilter, 48 Geometrische Merkmale, 100 Formfaktor, 101 Globale Merkmale, 100 GlobaleMerkmale, 101 Momente, 102 Objektfl¨ache, 101 Objektumfang, 101 Zentralmomente, 103 Gl¨attungsverfahren, 44 Gradient, 58 Gradientenbetrag, 59, 60 Gradientenrichtung, 59, 60 GRASSFIRE, 29 Grauwertbild, 21 Grauwerth¨aufigkeit, 38 Grauwertkanten, 57
Stichwortverzeichnis
Grundfarben, 107 Grundschwingung, 145 Handscanner, 10 Helligkeit, 106, 107, 111 Hesse’sche Normalform, 86 Histogramm, 38, 72, 104 Histogramm¨aqualisation, 38 Histogrammdehnung, 16 Histogrammebnung, 16, 38, 41 hit-or-miss“-Transformation, 31 ” Hochpass, 152 Homogenit¨atskriterium, 96 Hough-Transformation, 86 Hue, 111 Hyperebene, 124 IDFT, 150 Korperfarben, ¨ 106 kunstliche ¨ Intelligenz, 116 Kantendetektion, 57 Kantenextraktion, 85 Kantenoperatoren, 60 Ketten-Code, 87 Kirsch-Operator, 62 Klassifikation, 18, 115 Kompassgradienten-Operatoren, 62 Komplement¨arfarbe, 111 Konnektionismus, 117 Kontextmerkmale, 100 Kontrastverbesserung, 36 Kontrastverst¨arkung, 16 Konturmerkmale, 100 Konturpunktverkettung, 58, 84, 86 Konturverfolgungsverfahren, 86 Korrespondenzproblem, 129 Kreuzkorrellation, 135 Laplace-Operator, 64 Leistungsspektrum, 149 Letzte Erosion, 31 Lochkamera, 5, 6 lokale Schwellen, 90 LUT, 36
Stichwortverzeichnis
Markierungspunkt, 30 Massenschwerpunkt, 103 Maximum der Richtungsdifferenz, 60 Medianfilter, 47 Merkmalsextraktion, 17, 21, 99, 115 Mittelwert, 104 Mittelwertfilter, 46 Morphologie, 25 Mustererkennung, 2 Normfarbwerten, 108 Nulldurchgang, 64 Nyquist-Shannon-Abtasttheorem, 150 Oberschwingung, 145 Objektschwerpunkt, 102 ¨ Offnen, 28, 44 Optimale Schwelle, 92 optischer Fluss, 136 Ortsauflosung, ¨ 12 Ortsfrequenz, 105 Passpunktmethode, 54 Phase, 143 Phasenspektrum, 150 photometrische Merkmale, 104 Pixel, 12 Powerspektrum, 149 Prewitt-Operator, 61 quadratischer Abstand, 119 Quantisierung, 12 Randproblem, 46 Rangfolgenfilter, 48 Rangordnungsfilter, 48 Rauschunterdruckung, ¨ 44 relative Histogrammverteilung, 38 Restauration, 35 Richtungsrose, 87 Roberts-Cross-Operator, 61 S¨attigung, 106, 107 Saturation, 111 Schiefe, 104
229
Schließen, 28, 44 Segmentierung, 16, 21, 83 ¨ Ubersegmentierung, 84 bereichsbasiert, 89 Diskontinuit¨atskriterium, 83 Homogenit¨atskriterium, 84 kantenbasiert, 58, 84 punktorientiert, 89 Untersegmentierung, 84 Shadingkorrektur, 43 Schwarzbild, 43 Weißbild, 43 Shadingmatrix, 43 Shrink, 24, 44 Signifikanzanalyse, 100 Simple Edge Operator, 63 Skelettieren, 32 Sobel-Operator, 61 Spektralfarben, 106 Statistik erster Ordnung, 38 Steppenbrand, 29 Streuung, 104 subtraktive Farbmischung, 107 Summensignal, 145 Superpositionsprinzip, 152 Tachymeter, 10 Tesselation, 12 Texel, 68 Textur-basierte Merkmale, 100 Texturanalyseverfahren Autoregressives Modell, 71 Laws, 77 Markov Random Fields, 71 Statistik 1. Ordnung, 72 Statistik 2. Ordnung, 72 Statistik n. Ordnung, 75 Strukturelle Verfahren, 78 Texturkanten, 57 Texturmerkmale, 105 Theodoliten, 10 Tiefensch¨arfe, 6 Tiefpass, 47, 152 Trennfunktion, 115
230
trichromatisches Modell, 107 Trommelscanner, 10 ¨ Ubersegmentierung, 98 uberwachtes ¨ Lernen, 116 Umgebungselement, 25 unuberwachtes ¨ Lernen, 116 Untersegmetierung, 98 Value, 111 Vektorgradienten, 61
Stichwortverzeichnis
Verdunnung, ¨ 31 Verdickung, 31 Verschiebungsvektorfeld, 129 Vorverarbeitung, 21, 35 Zundpunkt, ¨ 30 Zentrumspixel, 22 zero crossing, 64 Zuordnungsverfahren, 134 blockbasiert, 135 merkmalsbasiert, 134