Detektion, Kompression und Rekonstruktion von geometrischen Objekten mittels numerischer Methoden



Ähnliche Dokumente
Im Original veränderbare Word-Dateien

Elementare Bildverarbeitungsoperationen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

6.2 Scan-Konvertierung (Scan Conversion)

Zeichen bei Zahlen entschlüsseln

10%, 7,57 kb 20%, 5,3 kb 30%, 4,33 kb 40%, 3,71 kb 50%, 3,34 kb. 60%, 2,97 kb 70%, 2,59 kb 80%, 2,15 kb 90%, 1,62 kb 99%, 1,09 kb

Bildverarbeitung Herbstsemester Kanten und Ecken

Kevin Caldwell. 18.April 2012

Plotten von Linien ( nach Jack Bresenham, 1962 )

Professionelle Seminare im Bereich MS-Office

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Die reellen Lösungen der kubischen Gleichung

Eigenen Farbverlauf erstellen

Einfügen von Bildern innerhalb eines Beitrages

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Lineare Gleichungssysteme

Fotos verkleinern mit Paint

10.1 Auflösung, Drucken und Scannen

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

! " # $ " % & Nicki Wruck worldwidewruck

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

WORKSHOP für das Programm XnView

Guide DynDNS und Portforwarding

Das Persönliche Budget in verständlicher Sprache

Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein)

SUDOKU - Strategien zur Lösung

Umgekehrte Kurvendiskussion

1 Mathematische Grundlagen

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Grundlagen. 1. Grundlagen

Bilddateien. Für die Speicherung von Bilddaten existieren zwei grundsätzlich unterschiedliche Verfahren. Bilder können als

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Primzahlen und RSA-Verschlüsselung

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Erstellen von x-y-diagrammen in OpenOffice.calc

Vorbereitungsaufgaben

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

Kapitel 3 Frames Seite 1

Fitswork Kometenbilder aufaddieren Oliver Schneider,

Belichtung mit Tonwertkorrektur verbessern

Diese Prozesse und noch viele andere Tricks werden in der Digitalfotografie mit Hilfe von Bildbearbeitungsprogrammen, wie z. B. Gimp, bewältigt.

EINFACHES HAUSHALT- KASSABUCH

Lösungsmethoden gewöhnlicher Differentialgleichungen (Dgl.)

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Bilder Schärfen und Rauschen entfernen

Herstellen von Symbolen mit Corel Draw ab Version 9

Paper Computer Science Experiment

Grafiksatz fertige Buttons blue

Bauteilattribute als Sachdaten anzeigen

Bilder zum Upload verkleinern

Viele Digitalbilder in einem Rutsch verkleinern (z.b. zur Verwendung in einer Präsentationsschau) Nachfolgend der Arbeitsvorgang:

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Ebenenmasken Grundlagen

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Funktion Erläuterung Beispiel

Was meinen die Leute eigentlich mit: Grexit?

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

Histogramm Mit dem Histogramm zu besseren Bildern?!

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Anleitung über den Umgang mit Schildern

Digitale Bilddateien

Paint.Net Der Paint.NET Bildschirm

Teaser-Bilder erstellen mit GIMP. Bildbearbeitung mit GIMP 1

Einführung in. Logische Schaltungen

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Leichte-Sprache-Bilder

5. Bildauflösung ICT-Komp 10

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Lernmaterial für die Fernuni Hagen effizient und prüfungsnah

Extrema von Funktionen in zwei Variablen

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung

Erzherzog Johann Jahr 2009

Konzepte der Informatik

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Anwendungshinweise zur Anwendung der Soziometrie

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Lineare Gleichungssysteme

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Steganographie mit Rastergrafiken

Studieren- Erklärungen und Tipps

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Falten regelmäßiger Vielecke

PSRDesigner. Punkt und Streifenrasterplatinen Designer

Zahlen auf einen Blick

Programm 4: Arbeiten mit thematischen Karten

Zahlensysteme: Oktal- und Hexadezimalsystem

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Quadratische Gleichungen

ACDSee 2009 Tutorials: Rote-Augen-Korrektur

Auswerten mit Excel. Viele Video-Tutorials auf Youtube z.b.

Gimp Kurzanleitung. Offizielle Gimp Seite:

Transkript:

Universität Ulm Fakultät für Mathematik und Wirtschaftswissenschaften Detektion, Kompression und Rekonstruktion von geometrischen Objekten mittels numerischer Methoden Bachelorarbeit in Mathematik vorgelegt von Beke, Junge am 12.10.2011 Gutachter Prof. Dr. Stefan Funken

Ehrenwörtliche Erklärung Ich erkläre hiermit ehrenwörtlich, dass ich die vorliegende Arbeit selbstständig angefertigt habe; die aus fremden Quellen direkt oder indirekt übernommenen Gedanken sind als solche kenntlich gemacht. Die Arbeit wurde bisher keiner anderen Prüfungsbehörde vorgelegt und auch noch nicht veröffentlicht. Ich bin mir bewusst, dass eine unwahre Erklärung rechtliche Folgen haben wird. Ulm, den 12.10.2011 (Unterschrift)

Danksagung. Ich danke meinen Betreuern Prof. Dr. Stefan Funken und Manuel Landstorfer, dass sie diese Arbeit möglich gemacht haben und ich in diesem Gebiet meine Bachelorarbeit schreiben konnte. Manuel Landstorfer danke ich für die gute Betreuung bei der Fertigstellung dieser Arbeit. Bedanken möchte ich mich bei Matthias Mikusch, der viele logische und sprachliche Fehler in dieser Arbeit aufgedeckt und mich die ganze Zeit über unterstützt hat. Für die Suche nach sprachlichen Fehlern in äußerst amüsanter Weise bedanke ich mich bei Insa Junge und Timo Nickel. Die Unterstützung meiner Familie und meiner Freunde hat mir sehr geholfen. Stand. Ulm, Oktober 2011.

Inhaltsverzeichnis 1 Einleitung 1 I Bildverarbeitung 5 2 Digitale Bilder 7 2.1 Arten von Bildern 7 2.2 Farbräume 7 2.3 grafische Dateitformate 9 2.4 geometrische Objekte auf Pixelebene 11 3 Pixeloperationen 13 3.1 Punktoperation 13 3.2 Nachbarschaftsoperationen 14 4 Strukturdetektion 17 4.1 Einfache Filter 17 4.2 Kantendetektion 19 4.3 Eckendetektion 29 4.4 Morphologische Filter 32 5 Segmentierung 39 5.1 Pixelbasierte Segmentierung 39 5.2 Kantenbasierte Segmentierung 41 5.3 Regionenorientierte Segmentierung 41 5.4 Modellbasierte Segmentierung 41 II Objekterkennung mittels Kurvenapproximation 45 6 Mathematische Methoden zur Kurvenapproximation 47 6.1 Einführung 47 6.2 lineares Ausgleichsproblem 47 6.3 nichtlineares Ausgleichsproblem 54 III Programmstruktur und Implementierung 85 7 Struktur und Implementierung der verwendeten Methoden 87 7.1 Einführung 87 7.2 Vorverarbeitung 87 7.3 Strukturdetektion 88

7.4 Analyse von Objekten 96 8 Optimierung und Ausblick 113 8.1 Optimierung der genutzten Algorithmen 113 8.2 Ausblick 114 Literaturverzeichnis 117

Kapitel 1 Einleitung Diese Bachelorarbeit ist an der Universität Ulm am Institut für Numerische Mathematik entstanden. Sie befasst sich mit der Detektion, Kompression und Rekonstruktion von geometrischen Objekten mittels numerischer Methoden. In der heutigen Zeit spielt die Darstellung von Sachverhalten in Form von Bildern eine große Rolle. In der digitalen Welt werden Inhalte immer öfter in Bildform dargestellt. Weiterhin gibt es immer noch eine große Anzahl von Zeichnungen und Abbildungen, die in Papierform vorliegen. Besonders technische Zeichnungen sind häufig in Papierform vorhanden. Die Digitalisierung dieser ist für viele Firmen interessant, da eine Archivierung und die Änderung von technischen Zeichnungen auf dem Computer einfacher ist als bei technischen Zeichnungen in Papierform Dieses Szenario liefert die Motivation für diese Arbeit. Es wird analysiert, ob eine solche Umwandlung möglich ist. Da die Umwandlung einer technischen Zeichnung den Zeitrahmen dieser Arbeit überschreitet, wird als Vereinfachung einer technischen Zeichnung ein Bild mit geometrischen Objekten betrachtet. Die Aufgabe dieser Arbeit ist, ein vollautomatisches System mithilfe von Standardalgorithmen der Bildverarbeitung und der Mathematik zu entwickeln, das geometrische Objekte in Form von Linien in einem Bild detektiert, komprimiert und rekonstruiert. Dabei werden zunächst computergenerierte Bilder betrachtet. Als erstes wird das Eingabebild mit Bildverarbeitungsalgorithmen verändert, sodass die Linien in dem Bild detektiert und analysiert werden können. Die Analyse geschieht über numerische Methoden. Ist das Bild analysiert und die Lage der geometrischen Objekte bekannt, kann das vorliegende Bild in eine Vektorgrafik umgewandelt werden. Dadurch wird eine Kompression der Daten erreicht. Die Objekte können aus der komprimierten Datei wieder rekonstruiert werden. Das Thema der Bachelorarbeit stellt eine Verschmelzung der Themengebiete Bildverarbeitung und Numerik dar. Die Bildverarbeitung beschäftigt sich mit der Entwicklung von Algorithmen zur Manipulation von digitalen Bildern auf dem Computer, um aus ihnen Informationen zu extrahieren. Heutzutage wird sie häufig mit der Bildbearbeitung verwechselt, die aber nur die Verwendung von Manipulationssoftware beschreibt. Viele Aufgaben der Bildverarbeitung erscheinen auf den ersten Blick einfach, da sie für das menschliche Hirn spielend zu bewältigen sind. Für viele Probleme aber sind Bildverarbeitungsalgorithmen schwierig, unzuverlässig, zu langsam bzw. es sind bisher gar keine entwickelt worden [4]. Dies ist besonders in der Bildanalyse, also der Informationenextraktion der

2 Kapitel 1: Einleitung Fall. Hier sind viele Probleme noch ungelöst. Bildverarbeitung bezeichnet Operatoren und Algorithmen, die Bilder ohne zusätzliches Wissen über das Bild bearbeiten. Diese Arbeit geht wie die meisten Arbeiten in diesem Bereich über die reine Bildverarbeitung hinaus, da eine Analyse des Bildes mit dem Ziel der Objekterkennung erwünscht ist. Aus diesem Grund gehört diese Arbeit zu dem größeren Fachbereich Computer Vision. Anwendungsbreiche der Computer Vision gibt es in fast allen naturwissenschaftlichen und ingenieurwissenschaftlichen Bereichen. Die eigentliche Objekterkennung ist in dieser Arbeit über numerische Methoden realisiert. Die numerische Mathematik ist ein Teilbereich des Wissenschaftlichen Rechnens. Die Numerik beschäftigt sich mit der Analyse und Konstruktion von Algortihmen mit dem Ziel mathematische Probleme approximativ auf einem Computer zu lösen. Dabei gibt es Verfahren, die bei großer Rechengenauigkeit eine genaue Lösung des Problems liefern und Näherungsverfahren, bei denen die Lösung nur approximiert wird. In vielen Fällen reicht eine Approximation der Lösung zur Bearbeitung des Problems. Diese Arbeit ist in drei Abschnitte geteilt. Der erste Abschnitt beschäftigt sich mit der Theorie der Bildverarbeitung, der Zweite mit der Theorie der Mathematik. Der letzte Abschnitt stellt das entwickelte System vor. In Kapitel 2 werden Bilder im Allgemeinen eingeführt. Es wird die Frage beantwortet, was ein Bild ist, welche Farbräume möglich sind und in welchen Dateiformaten Bilder vorliegen. Abschließend wird darauf eingegangen, wie sich geometrische Objekte auf Rasterdatentypen verhalten. Im darauf folgenden Kapitel 3 werden die grundsätzlich möglichen Operationen auf Pixelebene vorgestellt. Weiter eingegangen wird auf den wichtigen Begriff des Histogramms. Ein entscheidener Bereich der Bildverarbeitung ist die Strukturdetektion, die relevante Bildinhalte herausstellt. Die Strukturdetektion ist das Thema in Kapitel 4. Als erstes werden einfache Filteroperationen vorgestellt, die dazu dienen Bilder für die eigentliche Verarbeitung vorzubereiten, aber auch Bestandteil komplexerer Operationen sind. Nachdem Ableitungen auf diskreten Bildern eigeführt sind, wird die Detektion von Kanten in Abschnitt 4.2 besprochen. Hier werden mehrere Algorithmen zur Bestimmung von Kanten vorgestellt. Kanten stellen ein wichtiges Strukturmerkmal eines Bildes dar. Ein weiteres wichtiges Merkmal sind Ecken. Ein Algorithmus zur Eckendetektion wird in Abschnitt 4.3 beschrieben. Das Kapitel 4 wird mit der Beschreibung von Morphologischen Filtern geschlossen. Diese Filter führen gestaltliche Änderungen von Bildobjekten herbei. In Kapitel 5 werden verschiedene Ansätze zur Objektsegmentierung vorgestellt. Das Kapitel 6 stellt Algorithmen der Numerik zur Lösung von linearen und nichtlinearen Ausgleichsproblem vor. Diese werden genutzt um die Formen gefundener Segmente zu bestimmen. Eine weitere Möglichkeit, Formen von gefundenen Segmenten zu beschreiben, sind Bézierkurven. Diese werden im Kapitel 6 beschrieben. Der letzte Teil beschreibt den praktischen Anteil dieser Arbeit. Das entwickelte System wird in dem Kapitel 7 vorgestellt. Die einzelnen Schritte werden vorgestellt und

3 Abb. 1.1: Struktur der Arbeit der der Matlab-Code erklärt. Zusätzlich wird eine Einschätzung gegeben, welche Arten von Bildern bearbeitet werden können. Im letzten Kapitel wird das Optimierungspotential der Arbeit erläutert und mögliche Weiterentwicklungsrichtungen beschrieben. Abbildung 1.1 stellt die Struktur der Arbeit dar und zeigt die Vereknüpfungen der einzelnen Kapitel auf. Die ovalen grafischen Elemente sind die Kapitelthemen, Rechtecke wichtige Ergebnisse die aus diesen folgen. Das Digitale Bild wird mithilfe von einfachen Operatoren, der Kanten- und Strukturdetektion und der Morphologie in ein Merkmalsbild umgewandelt. Das Merkmalsbild wird durch die Segmentierung in Segmente geteilt. Anschließend wird das Segment mit numerischen Methoden analysiert. Das Ergebnis dieser numerischen Operationen ist eine Objektbeschreibung. Aus der Objektbeschreibung kann das Digitale Bild wieder rekonstruiert werden. Das programmierte System wird dieser Arbeit in elektronischer Form beigelegt.

4 Kapitel 1: Einleitung

Teil I Bildverarbeitung 5

Kapitel 2 Digitale Bilder Um Bilder in einem Bildverarbeitungsverfahren zu nutzen, muss geklärt sein was ein Bild ist, und in welcher Form es vorliegt. Dazu werden zunächst unterschiedliche Arten von Bildern vorgestellt sowie die vorkommenden Farbräume. Dann werden unterschiedliche Dateiformate vorgestellt, in denen Bilder vorliegen können. Diese werden als grafische Dateiformate bezeichnet. Dabei wird besonders auch.jpeg und.svg- Dateien eingegangen. Um auf die Besonderheiten im Umgang mit Pixeln aufmerksam zu machen, werden Objekte auf Pixelebene betrachtet. 2.1 Arten von Bildern Ein Bild stellt die Bestrahlungsstärke in einer Ebene dar. Diese Bestrahlungsstärke kann als kontinuierliche Funktion aufgefasst werden. In einem Computer kann die kontinuierliche Funktion weder dargestellt noch verarbeitet werden. Aus diesem Grund wird ein Bild im Computer als zweidimensionales Punktfeld gespeichert. Hierbei entsprechen die Koordinaten eines Punktes dem Ort, der Wert an diesem Ort dem Farbwert dieses Punktes. Dieser diskrete Wert entspricht der Bestrahlungsstärke. Die Punkte des Feldes werden als Pixel bezeichnet, wobei Pixel die Kurzform für picture element ist. Ein Pixel entspricht hierbei einem Rechteck im digitalisierten Bild. Das Punktfeld kann als Matrix der Größe m n dargestellt werden. m ist die Höhe und n die Breite des Bildes in Pixel. Über die Matrix kann auf jedes Element des Bildes zugegriffen werden. Je nachdem wie groß m und n gewählt werden, erscheinen digitale Bilder für das menschliche Auge als kontinuierliche Bildfunktion. In den meisten Fällen werden die Pixel als rechteckig gewählt, da diese Form technisch am leichtesten realisierbar ist. Andere Formen wie Dreieck oder Sechseck sind ebenso möglich, eine Erweiterung des Bildes in eine höhere Dimension als der Ebene sind hingegen schwierig umsetzbar. Im Folgenden wird von der Rechteckform ausgegangen. 2.2 Farbräume Ein Bild besteht in der in unserem Alltag am häufigsten vorkommenden Form aus einer Anzahl von Pixel und dazugehörigen Farbwerten. Je nach Situation nehmen diese unterschiedliche Werte an.

8 Kapitel 2: Digitale Bilder Abb. 2.1: RGB-Bild Abb. 2.2: Graustufen- Bild Abb. 2.3: Binär-Bild 2.2.1 RGB Ein Farbbild wird meist in den Primärfarben rot, grün, blau kodiert. Dabei stehen pro Farbe 8 Bit zur Verfügung, sodass ein Pixel 24 Bit Speicherplatz benötigt. Der Wertebereich jeder Farbkomponente liegt zwischen [0,..., 255], 0 ist die minimale Helligkeitsstufe, 255 die höchste. Bilder dieser Kodierung werden als RGB-Bilder bezeichnet und stellt eine Standardeinstellung bei digitalen Kameras dar. 2.2.2 Grauwertbilder In der digitalen Bildverarbeitung ist die Struktur des Bildes häufig wichtiger als die Farbgebung. Aus diesem Grund wandelt man RGB-Bilder in Graustufenbilder um. Hierfür werden die drei Farbkanäle zu einem zusammengefasst. Dabei wird je nach Anwendung der einzelne Kanal unterschiedlich gewichtet. Matlab verwendet folgende Formel: I(x, y) = 0.2989 R + 0.5870 G + 0.1140 B mit I(x, y) Grauwertbild Der Wertebereich pro Pixel liegt zwischen [0,..., 255]. Dabei entspricht 0 schwarz und 255 weiß. Die Strukturen des Bildes bleiben bei der Umwandlung erhalten. 2.2.3 Binärbilder Eine weitere Möglichkeit die Informationendichte zu verringern und somit Speicherplatz zu sparen, ist die Umwandlung eines Grauwertbildes in ein Binärbild. Der Wertebereich eines Binärbildes ist [0, 1]. 0 ist schwarz und 1 weiß. Die Umwandlung erfolgt über eine gesetzte Schwelle. Alle Grauwerte aus dem Eingangsbild, die unter der Schwelle liegen werden zu schwarz, alle anderen zu weiß. In Binärbildern lassen sich z.b. geometrische Objekte leichter erkennen als in Farboder Grauwertbildern, da die Zuordnungen eindeutig sind. Diese Bildtypen werden von handelüblichen Geräten wie digitalen Kameras, Scannern etc. erzeugt. In anderen Bereichen haben die Farbtiefen höhere Werte, da eine größere Detailtiefe nötig ist ( Astronomie, Medizin).

Abschnitt 2.3: grafische Dateitformate 9 2.3 grafische Dateitformate Die Dateitypen, in denen ein Bild vorliegen kann, unterscheiden sich im Speicherbedarf, der Kompression, der Kompatibilität und dem Anwendungsbereich [[4], S.14]. Bevor eine Anwendung für Bilder entwickelt wird, muss bezüglich der verwendeten Dateitypen eine Entscheidung getroffen werden ([4], S.14-25). Dabei unterscheidet man zwischen Raster- und Vektordatentypen 2.3.1 Rasterdatentypen Das am Anfang des Kapitels beschriebene Bild entspricht einem Rasterdatenbild. Es hat eine Höhe und Breite, die in Pixel gemessen wird und einen Farbwert an diesen Koordinantenstellen. Wichtige Vertreter dieses Datentyps sind PNG, JPEG und BMP. Aufgrund der Aufgabenstellung in dieser Arbeit werde ich beispielhaft JPEG und SVG beschreiben. 2.3.1.1 JPEG JPEG bezeichnet nicht, wie häufig angenommen, einen Dateityp, sondern ein Kompressionsverfahren zur Verarbeitung von kontinuierlichen Farb- und Grauwertbildern. Das Verfahren wurde von der Joint Photographic Experts Group entwickelt, um Bilder um den Faktor 1:16 zu komprimieren. In manchen Fällen ist eine Reduktion von 1:24 möglich. Ein Bild das normalerweise 24 Bits/Pixel benötigt, wird auf 1 Bit/Pixel Speicherplatz reduziert. Seit 1990 ist das Verfahren unter dem ISO-Standard ISO-10918 bekannt. Das JPEG- Verfahren kombiniert mehrere Kompressionsverfahren, um ein relativ kleines Bild zu erzeugen. Das Verfahren wird in ([4], S.18) ausführlicher beschrieben. Ein Nachteil des JPEG-Verfahrens bei hoher Kompression ist das Hervortreten von Blöcken, die während der Kompression genutzt werden. Zudem ist der Speicherbedarf bei Bildern mit wenig Bildinformationen noch sehr hoch. Die durch dieses Verfahren erzeugte Datei, heißt JFIF (JPEG File Interchange Format), wird aber als.jpeg-file bezeichnet. 2.3.2 Vektordatentypen Im Gegensatz zu Rasterdatentypen wird der Bildinhalt bei Vektordatentypen in kontinuierlichen Koordinaten in Textform gespeichert. Aus diesem Grund eignet sich dieser Datentyp sehr gut für die Darstellung von geometrischen Objekten. Um die Textdatei auf einem gerasterten Endgerät anzuzeigen, wird die Vektorgrafik vor dem Anzeigen gerastert. Der Speicheraufwand kann je nach Bildinhalt wesentlich kleiner sein als beim Rasterdatentyp (vgl. [4], S. 15). 2.3.2.1 SVG Das Dateiformat.svg ist das vom World Wide Web Consortium (W3C) empfohlene Format zur Erzeugung von 2D Grafiken. Dabei steht SVG für Scalable Vector Graphics. Die Grafiken dieses Dateiformats werden in XML über einen Editor erzeugt. Die Dateien können über jeden Texteditor erzeugt und verändert werden.

10 Kapitel 2: Digitale Bilder SVG ist dabei sehr flexibel und portierbar. Es wird von den gängigen Browsern häufig auch ohne Plugin dargestellt und aufgrund seiner guten Händelbarkeit auf mobilen Geräten wie Handys eingesetzt. Der Name des Dateiformat erklärt, was die Besonderheiten von SVG gegenüber einer Rastergrafik sind. scalable Vector erzeugte SVG-Grafiken sind auf beliebige Größe skalierbar, es besteht keine Abhängigkeit von festen Größen Die Auflösung ist an die Anwendung anpassbar, aus diesem Grund ist eine Portierung einfach jede Grafik kann für sich alleine oder im Verbund angezeigt werden SVG enthält Objekte in kontinuierlichen Koordinaten in Textform, ist damit flexibler als Rasterdatentypen als Objekte sind z.b. Pfad, Linie, Kreis, Ellipse, Quadrat in verschiedenen Farben und Ausprägungen möglich Graphics SVG ist ein Format um Vektorgrafiken zu erstellen Um eine.svg-datei auf einem Endgerät darzustellen, muss diese in eine Rastergrafik umgewandelt werden, da die Endgeräte wie Monitor, Handy etc. gerasterte Bildschirme haben. Dabei werden Algorithmen eingesetzt, um unerwünschten Effekten vorzubeugen. Im folgenden Beispiel wird eine Vektorgrafik im svg.format erzeugt. 2.3.3 Beispiel für die Erzeugung einer Vektorgrafik SVG hat viele Möglichkeiten um Grafiken zu erstellen. In diesem Beispiel werden nur Befehle vorgestellt, die später auch genutzt werden. Weitere Befehle können in Tutorials im Internet oder in der Spezifikation des Standards auf der Homepage von W3C nachgelesen werden. Bei SVG ist der Punkt in der linken oberen Ecke der Startpunkt (0, 0). Die x-achse verläuft nach rechts, die y-achse nach unten. <xml v e r s i o n = 1.0 s t a n d a l o n e= no > <!DOCTYPE svg PUBLIC //W3C//DTD SVG 1. 0 / /EN http : / /www. w3. org /TR/2001/REC SVG 20010904/DTD/ svg10. dtd > Jede SVG-Datei muss nicht unbedingt mit diesen Zeilen beginnen. Diese stellen aber sicher, dass der gesamte Umfang von XML genutzt werden kann. Die eigentliche SVG-Datei wird mit <svg eröffnet und mit </svg> geschlossen. Hier kann auch die Größe der Grafik angegeben werden. In diesem Beispiel wird die Größe in Pixel gemessen. \ item <svg width = 640px h e i g h t = 480px >\ newline </svg>

Abschnitt 2.4: geometrische Objekte auf Pixelebene 11 Abb. 2.4: Vektorgrafik im svg-format Zwischen den Anfangs- und Endbefehlen können die Grafiken eingefügt werden. Als Standardobjekte sind Rechtecke, Kreise. Ellipse, Linien, Pfade etc. vorhanden. In einem Pfad können mehrere Objekte zusammenhängend gezeichnet werden. <r e c t width = 640px h e i g h t = 480px f i l l = white s t r o k e= white /> Ergebnis dieses Befehls ist ein weißes Rechteck in der Größe 640 480 Pixel ohne Rand. Das Bild bekommt so einen weißen Hintergrund. < c i r c l e cx = 100 cy = 100 r = 50 s t y l e = f i l l : white ; s t r o k e : black ; s t r o k e width : 4 px /> Dieser Kreis mit dem Mittelpunkt 100, 100 und dem Radius 50, wird als Linie von vier Pixel Breite dargestellt. Wie aus dem Code-Beispiel ersichtlich ist, werden mit style die Gestaltungsparameter des Objekts gesetzt. fill legt die Füllfarbe, stroke die Randfarbe und stroke width die Linienbreite fest. Die Befehle von Kreisen und Linien sind analog aufgebaut. < e l l i p s e cx = 259 cy = 250 rx = 80 ry = 50 s t y l e = f i l l : white ; s t r o k e : black ; s t r o k e width : 1 px /> <l i n e x1= 50 y1= 450 x2= 500 y2= 100 s t y l e = s t r o k e : black ; s t r o k e width : 3 px ; /> <l i n e x1= 220 y1= 50 x2= 500 y2= 420 s t y l e = s t r o k e : black ; s t r o k e width : 7 px ; /> Der folgende Befehl erstellt eine kubische Bézierkurve. Diese erstellt man über einen Pfad. Der Ansatzpunkt für den virtuellen Stift wird mit M gesetzt. Das C steht für eine Bézierkurve. Weitere Objekte können mit + angehängt werden. <path d= (M600 400 C250 350 700 300 450 20) s t y l e = f i l l : none ; s t r o k e : black ; s t r o k e width : 3 ; /> </svg> Diese Befehle erzeugen insgesamt die Abb.2.4, welche einen Einblick in die Möglichkeiten von SVG gibt. Der geringere Speicheraufwand von.svg im Gegensatz zu.jpeg kann an diesem Beispiel gut gezeigt werden. Während das.jpeg-bild bei gleicher Größe eine Dateigröße von 31,9KB hat, kommt die.svg-datei mit 500 Bytes aus. 2.4 geometrische Objekte auf Pixelebene Um ein Gefühl dafür zu geben welche Probleme auftreten können, wenn man sich bei geometrischen Objekten auf Pixelebene bewegt, werden in diesem Kapitel Beispiele

12 Kapitel 2: Digitale Bilder Abb. 2.5: mit Bresenham erzeugte Objekte in unterschiedlicher Auflösung für geometrische Objekte auf Pixelebene gegeben. Diese werden durch mathmatische Algorithmen der Computergrafik erzeugt. Die Computergrafik beschäftigt sich mit Algorithmen, die Grafiken auf Rasterebene darstellen und dabei für das menschliche Auge trotzdem kontinuierlich wirken. Solche Algorithmen werden auch eingesetzt, um die im letzten Abschnitt beschriebenen Vektorgrafiken auf dem Endgerät anzuzeigen. Gute Algorithmen zur Linien- und Kreisapproximation sind von Bresenham in den 60-ziger Jahren entwickelt worden. Sie sorgen für eine kontinuierliche Darstellung von Linien und Kreisen bei genügend hoher Auflösung und approximieren das gewünschte Objekt über einfache Operatoren [10]. Außerdem stellen diese Algorithmen sicher, dass die dargestellten Objekte keine Lücken aufweisen. Die beiden Beispiele in unterschiedlicher Auflösung stellen gut dar, wie die Objekte eigentlich aussehen und wie sie auf das menschliche Gehirn wirken. Bei der geringen Auflösung der Gerade, muss das Gehirn wissen, dass es sich um eine Gerade handeln soll. Der Kreis hingegen ist höher aufgelöst und wird sofort als Kreis erkannt, auch wenn die Auflösung noch nicht reicht um die Rasterung völlig zu verschleiern. Für das Arbeiten auf Pixelebene muss beachtet werden, dass die Darstellung auf Pixelebene eine Approximation an das Objekte darstellt, die stark von dem abweicht, was das Gehirn auf einem Bild zu sehen glaubt.

Kapitel 3 Pixeloperationen In diesem Kapitel werden Pixeloperationen vorgestellt. Die Kenntnis dieser ist notwendig, da alle Algorithmen mit Pixeloperationen auf auf Rasterbildern arbeiten. Dabei ist zu beachten, dass alle vorgestellten Operationen in diesem und den folgenden Kapiteln auf Grauwertbildern ausgeführt werden. 3.1 Punktoperation Eine Möglichkeit Bilder zu manipulieren oder Informationen aus ihnen zu extrahieren sind Punktoperationen. Bei Punktoperationen wird nur der Farbwert der jeweiligen Bildpixel betrachtet und eventuell verändert. Mithilfe von Punktoperationen können viele Veränderungen in einem Bild herbeigeführt werden. Für die Analyse des Bildes und die anschließende Veränderung, wird erst ein Histogramm des Bildes berechnet. Ein Histogramm ist eine Bildstatistik und stellt die relativen Häufigkeitswerte von Intensitäten in einem Bild dar. Definition 3.1.1 (Histogramm) Sei I(x, y) ein Grauwertbild der Größe m n, g = I(i, j) der Intensitätswert eines Bildpunktes. Die Werte des Histogramms sind gegeben durch: p I (g) = #g mit g = 0, 1,..., 255 m n Aufgrund der Normierung gilt: 255 g=0 p I (g) = 1 Ein Histogramm zeigt nur die Verteilung der Grauwerte über das Bild, nicht aber den Ort der Punkte. Trotzdem kann man im Histogramm Informationen über die Eigenschaften eines Bildes wie die Dynamik, den Kontrast, Sätting etc. ablesen. Entstehen unerwünschte Effekte im Bild bezüglich dieser Eigenschaften, so kann man diese Fehler mithilfe der Informationen aus dem Histogramm beheben. Ein Beispiel hierfür ist Belichtung eines Bildes. Ist ein Bild unterbelichtet, so wird der Grauwertbereich einseitig ausgenutzt. Eine Ausdehnung der Grauwerte auf den gesamten Grauwertbereich hebt die Unterbelichtung auf. Weitere Bildverbesserungsmöglichkeiten mithilfe von Histogrammen sind in ([4], S.39-53) nachzulesen. Ein weiteres Einsatzgebiet von Punktoperationen ist die pixelbasierte Segmentierung in (5.1).

14 Kapitel 3: Pixeloperationen Abb. 3.1: Bild einer Kirche mit zugehörigen Histogramm 3.2 Nachbarschaftsoperationen Mit Punktoperationen können Bilder schon sehr vielseitig verändert und Informationen aus ihnen gewonnen werden. Allerdings werden die Punkte nicht in dem Zusammenhang in dem sie stehen betrachtet. Nachbarschaftsoperationen betrachten die Nachbarschaft eines Pixels, um ihn zu verändern. Um die Änderungen durchzuführen, muss klar sein, was eine Nachbarschaft ist, und welche Eigenschaften sie hat. Auf gerasterten Bildern können zwei Nachbarschaften definiert werden: 4-er-Nachbarschaft: zwei Pixel sind benachbart, wenn sie eine gemeinsame Kante haben 8-er Nachbarschaft: zwei Pixel sind benachbart, wenn sie eine gemeinsame Kante oder Ecke haben In dieser Arbeit wird die 8-er Nachbarschaft verwendet, da dies die Nachbarschaft ist, die dem Empfinden des menschlichen Gehirns am nächsten kommt. Pixel heißen benachbart, wenn sie die Kriterien einer Nachbarschaft erfüllen. Neben dem Begriff der Nachbarschaft ist der Begriff der zusammenhängenden Objekte wichtig. Ein Objekt in einem Bild heißt zusammenhängend, wenn jeder Pixel jeden anderen Pixel des Objekts über einen Weg von Nachbarschaften erreicht wird. In dieser Arbeit werden im Bildverarbeitungsteil hauptsächlich Nachbarschaftsoperationen eingesetzt. Ein Beispiel hierfür sind die Mittelung (4.1.2) und die Berechnung von Kanten (4.2).

Abschnitt 3.2: Nachbarschaftsoperationen 15 Abb. 3.2: 8-er Nachbarschaft und 4-er-Nachbarschaft Abb. 3.3: Linie in 4-er Nachbarschaft Abb. 3.4: Linie in 8-er Nachbarschaft

16 Kapitel 3: Pixeloperationen

Kapitel 4 Strukturdetektion Um Informationen aus Bildern zu extrahieren, müssen relevante Strukturen im Bild detektiert werden. Dieses Kapitel stellt wichtige Werkzeuge zur Strukturdetektion vor. 4.1 Einfache Filter Lineare Filter sind Operatoren mit der Aufgabe Bilder zu manipulieren, um relevante Bildinhalte zu extrahieren. Grundlage hierfür ist die diskrete Faltung, bei der die Bilder mithilfe einer sogenannten Maske manipuliert werden (vgl. [11],Kap 4. Folie 25-29). 4.1.1 diskrete Faltung Die Maske M ist eine normierte l l-matrix mit l = 2k + 1, k N. Man wählt l ungerade, damit ein eindeutiger Mittelpunkt vorhanden ist. M = 1 Mi,j M 1,1 M 1,2 M 1,l M 2,1... M 2,l...... M 1,l M l,l (4.1) Bei der Faltung wird ein Punkt in seinem Wert verändert, je nachdem wie seine Nachbarpixel gefärbt sind. Definition 4.1.1 (diskrete Faltung) Diskrete Faltung angewendet auf das Bild I(x, y): k k h G (x, y) = I(x i, y j)m(i, j) i= k j= k k = i= k j= k k I(i, j)m(x i, y j) (4.2) mit x = 2,3 m 1 y = 2,3 n 1.

18 Kapitel 4: Strukturdetektion Abb. 4.1: Originalbild, Glättung mit Box, Glättung mit Gauß Die Faltung einer Maske mit einem Bild I(x, y) wird mit M I(x, y) = I(x, y) M beschrieben. Die diskrete Faltung ist nur für das Innere eines Bildes definiert. Um diese Operation für das gesamte Bild auszuführen, muss entweder der Rand gesondert behandelt oder ausgelassen werden. 4.1.2 Glättung Um ein Bild zu verarbeiten, ist es wichtig, dass das Bild möglichst geglättet und rauschfrei ist. Rauschen ist ein hochfrequentes Signal, das auf der Bildfunktion liegt und die eigentlichen Informationen überdeckt. Hochfrequente Signale können mit Tiefpassfiltern beseitigt werden. 4.1.2.1 Box-Filter Ein Beispiel für einen Tiefpassfilter ist ein Box-Filter B w, mit w als Maskengröße. Dieser mittelt Grauwertstufen über eine Nachbarschaftsoperation. Je größer der Box-Filter gewählt wird, desto größer ist die Glättung. Allerdings verschwinden mit größerer Glättung auch die Informationen, sodass man einen Mittelweg zwischen Rauschverlust und Informationsverlust finden muss. Ein Box-Filter ist eine normierte Einheitsmatrix: B 3 = 1 1 1 1 1 1 1 (4.3) 9 1 1 1 4.1.2.2 Gaußfilter Eine andere Möglichkeit ein Bild zu glätten, ist die Verwendung eines Gaußfilters. G σ (x, y) = 1 2πσ 2 exp( x2 + y 2 2σ 2 ) (4.4) Da der Gaußfilter ähnliche Ergebnisse wie die Binomialfilter ([11]) liefert, aber aufwändiger ist, wird er häufig durch Binomialfilter angenähert.

Abschnitt 4.2: Kantendetektion 19 Abb. 4.2: Badehaus Bodensee Abb. 4.3: Kanten Badehaus Bodensee In Abb.4.1 ist ein Originalbild, eine Boxglättung und eine Gaußglättung abgebildet. Wie man an der Abbildung sieht, haben beide Filter unterschiedliche Glättungseigenschaften. Der Gaußfilter erhält die Strukturen im Bild besser, der Boxfilter liefert zwar etwas schlechtere Ergebnisse, ist aber schneller zu berechen. Je nachdem welche Bilder man verarbeiten möchte, muss die Wahl des Glättungsfilters gut bedacht werden. 4.2 Kantendetektion Kanten spielen in der menschlichen Wahrnehmung eine große Rolle. Häufig erkennen wir Gegenstände und Objekte auf Bildern, obwohl sie nur durch wenige, unterschiedlich starke Kanten repräsentiert sind. Das menschliche Gehirn ist in der Lage nur anhand von Kanten den eindeutigen Ort und Form der vorhandenen Objekte und Strukturen zu beschreiben. In Abb.4.2 ist ein Badehaus abgebildet, dieses kann in Abb.4.3 ohne Probleme wieder erkannt werden. Um Objekte und Strukturen zu erkennen, kann es auch in der digitalen Bildverarbeitung reichen, die Kanten des Bildes zu betrachten. Aus diesem Grund ist die Kantenerkennung für die Bildverarbeitung ein wichtiges Werkzeug, um Informationen aus Bildern zu extrahieren. Ziel dieser Arbeit ist es, geometrische Objekte in einem Grauwertbild zu detektieren. Eine Verarbeitungsstufe des Eingangsbildes stellt die Kantenerkennung dar. In diesem Kapitel werden einige Werkzeuge zur Kantendetektion in Grauwertbildern vorgestellt.

20 Kapitel 4: Strukturdetektion Abb. 4.4: Beispiel für eine diskrete Grauwertfunktion I(x) 4.2.1 Gradientenbasierte Kantendetektion Für das menschliche Auge ist eine Kante eine abrupte Veränderung der Farbintensität oder des Farbtons. Eine Kante stellt also einen Kontrast dar. Die Kante erscheint umso stärker, je stärker die Änderung in einer kleinen Umgebung ist. Fasst man das Bild als eine Grauwertfunktion I(x) in der Bildebene auf, so ist eine Kante eine Diskontinuität in dieser Funktion ([9],S.333). Um Kanten zu detektieren, müssen die Änderungen im Bild detektieren werden. Dies geschieht über Ableitungen. Da es sich bei einem digitalen Bild um ein diskretes Bild handelt, werden die jeweiligen Ableitungen mit diskreten Differenzen angenähert. Hierfür benötigt man Nachbarschaftsoperationen (s.h. Abschnitt 3.2), die Veränderungen erkennen, konstante Grauwertbereiche unterdrücken und so ein Merkmalsbild erzeugen. In diesem Merkmalsbild werden Kanten und andere Veränderungen weiß und alle anderen Strukturen schwarz markiert. Dieses Merkmalsbild kann dann von weiteren Verarbeitungsstufen genutzt werden, um das jeweils gestellte Problem zu lösen. 4.2.2 Ableitungen zur Kantendetektion Kanten entsprechen den Extremwerten der ersten Ableitung I (x) der Grauwertfunktion I(x) bzw. den Nulldurchgängen der zweiten Ableitung I (x). Da es sich bei digitalen Bildern um diskrete Bilder handelt, wird die erste und die zweite Ableitung numerisch angenähert. Dafür wird I (x) und I (x) durch die Taylorreihe approximiert: f(x) = n k=0 f k (x 0 ) (x x 0 ) + R n (x) (4.5) k! Entwickelt man die eindimensionale Grauwertfunktion I(x) um den Pixel x i, wobei die einzelnen Pixel um h = x i+1 x i = x i x i 1 auseinanderliegen. Hieraus ergibt

Abschnitt 4.2: Kantendetektion 21 sich die Taylorentwicklung für I(x i+1 ) und I(x i 1 ): I(x i + h) = I(x i ) + I (x i ) 1 h + I (x i ) 2 h 2 + I (x i ) 6 h 3 + Iiv (x i ) h 4 +... (4.6) 24 I(x i h) = I(x i ) I (x i ) h + I (x i ) h 2 I (x i ) h 3 + Iiv (x i ) h 4... (4.7) 1 2 6 24 Die Subtraktion der Gleichung4.7 von 4.6 ergibt: I(x i + h) I(x i h) = 2I (x i ) h + 1 3 I (x i )h 3 (4.8) Da nur die Nachbarpixel um x i betrachtet werden, kann man I (x i ) durch: I (x i ) = I(x i + h) I(x i h) (4.9) 2h approximieren. Da die Normierung auf diskreten Gittern vernachlässigt werden kann, ergibt sich für die erste Ableitung folgender Faltungskern: [ ] 1 0 1 (4.10) Dieser Faltungskern wird auch als zentrale Differenz bezeichnet. Durch Addition von 4.6 und 4.7 ergibt sich: I(x i + h) + I(x i h) = 2I (x i ) + I (x i )h 2 + 1 12 Ivi (x i )h 4 (4.11) I (x i ) = I(x i h) 2I (x i ) + I(x i + h) (4.12) h 2. Für die zweite Ableitung entspricht dies dem Faltungskern: [ ] 1 2 1 (4.13) Diese Faltungskerne sind jedoch stark rauschanfällig, da das Rauschen durch die Bildung der Ableitung verstärkt wird. 4.2.3 Kantendetektion im 2D-Raum Diese Lösungsansätze für diskrete Funktionen sind aus der eindimensionalen Analysis entnommen. Das Ziel der Kantenerkennung ist in Bildern in zwei Dimensionen Kanten zu erkennen. Dort können Kanten jede beliebige Richtung annehmen. Eine Möglichkeit im Voraus unbekannte Richtungen von Kanten zu detektieren, ist die Kombination von unterschiedlichen Kantenfiltern. Ein Vertreter dieser Kantenfilter ist der Kirsch-Operator. Hierbei werden 8 Filter getestet, die jeweils um 45 gedreht sind. Die Kontrastantwort ist dabei das Maximum der acht Kontrastantworten an der jeweiligen Auswertungsstelle I(x i, y i ). Eine weiterer Vertreter ist ein Differenzen-Operator, der mit der zweiten Ableitung arbeitet ([11],Kap.5 Folie 23). Dieser kombiniert den Faltungskern 4.13 der zweiten Ableitung mit einer einfachen Box-Glättung, um die Rauschanfälligkeit zu verkleinern. Es wird in eine Richtung abgeleitet, und in die andere geglättet, wodurch sich

22 Kapitel 4: Strukturdetektion Abb. 4.5: Ergebnis Op 0 Abb. 4.6: Ergebnis Op 45 das Rauschen verringert. Die daraus entstehende Matrix wird dann immer um 45 gedreht. 1 2 1 1 1 2 Op 0 = 1 2 1 Op 45 = 1 2 1 1 2 1 2 1 1 1 1 1 2 1 1 Op 90 = 2 2 2 Op 135 = 1 2 1 1 1 1 1 1 2 Diese Kantenfilter detektieren 1 Pixel breite Kanten, wobei diese dunkel gegenüber dem Hintergrund sein müssen ( sonst umgedrehte Vorzeichen). In den Abbildungen 4.5-4.9 ist der Kirschoperator ausgeführt. In den Abbildungen 4.5-4.8 sind die einzelnen Kontrastantworten berechnet. Als Ergebniskontrastantwort wählt man das Maximum der Filterantworten an jeder Stelle (x i, y i ) und erhält daraus ein Kantenbild ( s.h. Abb. 4.9). Bisher könnenkanten nur über eine Gruppe von Kantenfiltern erkannt werden, die eine bestimmte Anzahl von Orientierungen abdecken. Im Folgenden werde ich eine Möglichkeit vorstellen Kanten mit nur zwei Filtern zu detektieren. Zudem ergibt sich mit diesem Operator die Möglichkeit, neben der Kantenstärke auch die Kantenrichtung zu bestimmen. Wird die Grauwertfunktion im zweidimensionelen Raum I(x, y) sowohl nach x also auch nach y abgeleitet, so erhält man als partielle Ableitungen: I x (x, y) = x I(x, y) und I y(x, y) = I(x, y) y

Abschnitt 4.2: Kantendetektion 23 Abb. 4.7: Ergebnis Op 90 Abb. 4.8: Ergebnis Op 135 Abb. 4.9: Maximum der einzelnen Kontrastantworten

24 Kapitel 4: Strukturdetektion Daraus ergibt sich der Gradientenvektor an der Stelle (x,y). [ ] Ix (x, y) I(x, y) = I y (x, y) Der Betrag des Gradienten ist invariant gegenüber Bilddrehungen und eignet sich aus diesem Grund für die richtungsunabhängige Kantendetektion. I = I x (x, y) 2 + I y (x, y) 2 (4.14) Der Operator zur Schätzung des Gradienten besteht aus den Ableitungen der Zeilen addiert mit den Ableitungen der Spalten. Dieser Operator wird in vielen Anwendungen eingesetzt, da er trotz seiner Einfachheit relativ gute Ergebnisse liefert. Für viele Operatoren wird zusätzlich die lokale Gradientenrichtung ɛ benötigt: ( ɛ = tan 1 Ix ). (4.15) I y Die Herleitung ist nachzulesen in ([11], Kap.5, Folie 24-27). Diese Betrachtungen führen zu den häufig verwendeten einfachen Kantendetektoren von Prewitt, sowie von Sobel. 4.2.4 Prewitt- und Sobel Operator Bei Verwendung der eindimensionalen Faltungskerne muss beachtet werden, dass diese sehr rauschanfällig sind und keine besonders guten Ergebnisse liefern. Um das Rauschen zu unterdrücken, wird ein Glättungsvektor mit dem Faltungskern der zentralen Differenz multipliziert (s.h. Gleichung 4.10). Dies geschieht sowohl in x- als auch in y-richtung. 1 Op x = 1 [ 1 0 1 ] 1 0 1 = 1 0 1 (4.16) 1 1 0 1 1 Op y = 0 [ 1 1 1 ] 1 1 1 = 0 0 0 (4.17) 1 1 1 1 Diese Operatorkombination wird als Prewitt-Operator bezeichnet. Das Bild wird in x-richtung mit Op x und in y-richtung mit Op y gefaltet. Der Sobeloperator wird nach demselben Prinzip aufgebaut. Im Gegensatz zum Prewitt-Operator gewichtet er die mittlere Zeile stärker und glättet mit den Binomialfilter, der den Gaußfilter approximiert. 1 0 1 1 2 1 Sobel x = 2 0 2 Sobel y = 0 0 0 (4.18) 1 0 1 1 2 1 Der Gradientenbetrag G wird wie in 4.14 berechnet. Das Ergebnis der Filteroperation wird als D bezeichnet, die Gradientenrichtung als Φ. Um Kanten zu detektieren, sind die Schritte wie in ([4], S.122-123) beschrieben nötig:

Abschnitt 4.2: Kantendetektion 25 Abb. 4.10: Sobel x I, Sobel y I, Gradientenbetrag ((Sobel x I)) 2 +(Sobel y I) 2 Berechne Op x I und Op y I Berechne den Gradientenbetrag G(x, y) = D 2 x + D 2 y Berechne die Gradientenrichtung Φ(x, y) = tan 1 ( Dy(x,y) D x(x,y) ) Es gibt noch weitere elementare Filter, die je nach Bildsituation geeignetere Ergebnisse liefern (s.h.[9]). Für dieses Projekt sind die Ergebnisse dieser Filter gut geeignet. Die Ergebnisse einfacher Kantendetektoren weichen oft davon ab, welche Informationen in einem Bild als subjektiv wichtig empfunden werden. Das menschliche Gehirn reagiert auch auf kleine Änderungen. Die Kantendetektoren reagieren nur auf lokale Änderungen. Das Ergebnis dieser einfachen Operatoren ist ein Kantenbild, das auch sehr viele Details enthält, sodass es schwer ist die wichtigen Kanten herauszufiltern. 4.2.5 Canny-Filter Der Canny-Filter beseitig einige Nachteile der einfachen Filter. In seiner Ursprungsversion verwendet er eine Gruppe von Filtern verschiedener Größen auf verschiedenen Skalenebenen. Dies ist nachzulesen in [5]. In dieser Arbeit wird ein einfacherer Canny-Filter vorgestellt, der nur auf einer Skalenebene und mit einer Filtergröße arbeitet ([11],Kap.5,Folie 69-78). Dieser Filter liefert wesentlich bessere Ergebnisse als die einfachen Filter und ist zudem über einen Glättungsparameter steuerbar. Mithilfe des Canny-Filters sollen folgende Ziele erreicht werden ([4],S.126): Minimierung falscher Kantenmarkierungen möglichst gute Kantenlokalisation nur eine Markierung pro Kante Der Canny-Filter besteht aus den folgenden Schritten: ([11],Kap.5,Folie 69):

26 Kapitel 4: Strukturdetektion Abb. 4.11: Visualisierung Kante Glättung des Bildes durch einen Glättungsfilter (4.1.2) Berechnung des stärksten Anstiegs (4.14) Nicht-Maximum Unterdrückung zweistufiges Schwellwertverfahren Die ersten zwei Schritte des Verfahrens wurden schon beschrieben, und werden genauso ausgeführt. Die zwei anderen Schritte werden nun detailliert beschrieben. 4.2.5.1 Nicht-Maximum Unterdrückung Der Betrag des Gradienten ist bereits ein Kantenbild. Allerdings sind diese Kanten teilweise noch sehr breit und bestehen aus vielen Grauwerten. Wie breit hängt vom gewählten Bild und dem Glättungsparameter ab. Eine Lokalisierung der Kanten ist aufgrund der Breite und Färbung schwierig. Betrachtet man eine Kante in diesem Bild, so hat eine Kante eine gewisse Breite mit unterschiedlichen Grauwerten und eine gewisse Länge. Um die Kante auf einen Pixel zu reduzieren, muss das Maximum der Grauwerte auf der gesamten Länge der Kante verfolgt werden. Dafür werden orthogonal zum Kontrast zu jedem Pixel zwei Nebenpixel betrachtet. Da der nächste Pixel nicht unbedingt orthogonal zum Kontrast verläuft, interpoliert man diesen subpixelgenau und seinen Grauwerte bilinear ([4],S.387-388). Sei (x 0, y 0 ) der zu interpolierende Wert. Die vier Pixel, die um diesen Wert liegen, werden ausgewählt. Die Grauwerte dieser Pixel werden mit A D durchnummeriert. Hierbei ist u 0 = x 0 und v 0 = y 0. A = I(u 0, v 0 ) B = I(u 0 + 1, v 0 ) C = I(u 0, v 0 + 1) D = I(u 0 + 1, v 0 + 1)

Abschnitt 4.2: Kantendetektion 27 Abb. 4.12: zu interpolierende Pixel Abb. 4.13: Bilineare Interpolation aus [4],S.388

28 Kapitel 4: Strukturdetektion Abb. 4.14: I dünn Die Werte E,F (s.h. Abb.4.13) ergeben sich aus den schon berechneten Werten mit a = x 0 y 0 und b = y 0 v 0. E = A + a(b A) F = C + a(d C) Damit ergibt sich der gesuchte Interpolationswert G: G = E + b(f E) = (a 1)(b 1)A + a(1 b)b + (1 a)bc + abd Den interpolierten Grauwert G berechnet man für jeden Pixel jeweils für den linken und rechten subpixelgenauen Nachbarn. Diese drei Werte werden verglichen und das Maximum ausgewählt. Die anderen Werte werden auf 0 gesetzt. So wird ein Merkmalsbild erzeugt, auf dem nur noch die maximalen Gradientenfilterantworten verzeichnet sind. Dieses Merkmalsbild wird im folgenden als I dünn bezeichnet. Ein Beispiel für ein solches Bild ist Abb.4.14. 4.2.5.2 Adaptives Schwellwertverfahren Das adaptive Schwellwertverfahren (hysteresis thresholding ) sorgt dafür, das geschlossene Kanten in einem Bild auch wirklich als geschlossen erscheinen. Zudem kann man über die Wahl der Schwellwerte beeinflussen, welche Art von Kanten erkannt werden. Das Schwellwertverfahren benötigt zwei Schwellwerte T 1 und T 2 mit

Abschnitt 4.3: Eckendetektion 29 Abb. 4.15: leicht ausgedünntes Gradientenbild, stark ausgedünntes Gradientenbild, Kantenbild T i (0, 1] und T 1 > T 2. Mit diesen Schwellwerten wird ein schwach und ein stark ausgedünntes Kantenbild bestimmt. I T1 = I dünn > T 1 max(i dünn ) (4.19) I T2 = I dünn > T 2 max(i dünn ) (4.20) Alle Werte, die unter T 2 max(i dünn ) liegen werden direkt verworfen. Diejenigen, die zwischen den beiden Schwellwerten liegen, werden erneut geprüft. Werte über T 1 max(i dünn ) werden gleich als Kante akzeptiert. Für die Überprüfung der noch in Frage kommenden Werte wird folgender Algorithmus angewendet: Kantenbild=I T2 solange sich das Kantenbild noch ändert, werden folgende Operationen ausgeführt: Kantenbild wird mit Einheitsmaske gefiltert jeder Hintergrundpunkt der einen Kantenpunkt als Nachbarn hat, wird vorerst selbst Kantenpunkt. Ist dieser Punkt auch in I T 1 vorhanden, so wird er als Kantenpunkt in Kantenbild übernommen Die Kanten in I T1 werden durch die Kanten in I T2 vervollständigt, bis alle Kanten in I T1 vollständig geschlossen sind. Das Merkmalsbild, das durch die Gesamtheit dieser Operationen entsteht, enthält die relevanten Kanten des Eingangsbildes. Ein Nachteil des Canny-Operators in seiner einfacheren Form ist, dass keine 1 Pixel breiten Linien detektiert werden können. 4.3 Eckendetektion Ecken und Kreuzungen spielen nicht nur für das menschliche Gehirn eine wichtige Rolle. Auch für technische Anwendungen, die mit Bildern arbeiten sind sie wichtig,

30 Kapitel 4: Strukturdetektion Abb. 4.16: lokale Grauwertstruktur da Ecken robuste Lokalisationsmerkmale darstellen, die auch nach Drehungen und andere Operationen detektiert werden können. Ecken können Schnittpunkte, das Ende einer Linie oder auch Ecken im herkömmlichen Sinn darstellen. Ein guter Eckendetektor sollte mehrere Kriterien erfüllen (vgl.[4],s.139) : Das Finden von Ecken unter normalen Aufnahmebedingungen ( Beleuchtung, Rauschen etc. ) Unterscheidung zwischen wichtigen und unwichtigen Ecken möglichst genaue Lokalisation der Ecken möglichst einfacher und effizienter Algorithmus Die meisten gängigen Eckenoperatoren arbeiten nach demselben Prinzip. Im Unterschied zu einer normalen Kante, bei der der Gradient nur in einer Richtung reagiert, sind Ecken Stellen, an denen der Gradient in mehrere Richtungen stark reagiert ([4],S.139). Die Eckenoperatoren verwenden Gradientenoperatoren, um diese Stellen zu detektieren. Man nutzt dabei die schon vorgestellten Möglichkeiten zur Berechnung des Gradientenbetrags und kombiniert diese mit dem Aufstellen der Kovarianzmatrix mit den partiellen Ableitungen I x (x, y) und I y (x, y). 4.3.1 Strukturtensor Es gibt viele Möglichkeiten Strukturen in einem Bild zu detektieren. In diesem Kapitel wird der Harris-Stephens Detektor vorgestellt, der in Kapitel 7 verwendet wird. Weitere Methoden wie z.b. der Moravec-Operator werden in [11] vorgestellt. 4.3.1.1 Bildstrukturen Um zu bestimmen welche Punkte Ecken sind, müssen die Hauptrichtungen der Gradienten geschätzt werden. Hierfür nutzt man die Hauptkomponentenanalyse und berechnet über die Eigenwerte λ der Kovarianmatrix die Stärke der Streuung an diesem Punkt. Die Eckpunkte werden über einen Schwellwert ausgewählt. Die beiden Eigenwerte λ 1, λ 2 an

Abschnitt 4.3: Eckendetektion 31 Abb. 4.17: Hauptrichtungen der lokalen Grauwertstrukturen dem Bildpunkt charakterisieren die Struktur an diesem Punkt. Hierbei gibt es drei Möglichkeiten: Sei O.b.d.A. λ 1 λ 2 λ 1 >> 0 und λ 2 0 nur eine dominante Hauptrichtung Kante λ 1 >> 0 und λ 2 >> 0 zwei dominante Hauptrichtungen Ecke λ 1 λ 2 0 keine Hauptrichtung Region 4.3.1.2 Harris-Stephens Detektor Der Harris-Stephens Detektor ist ein Operator, der sowohl die Größe der Streuung im Bild als auch die Richtung der Streuung bestimmt. Die Kovarianzmatrix bestimmt man als Matrix-Produkt des Gradienten I(x, y) mit sich selbst: [ ] C = I(x, y) I(x, y) T I = x(x, 2 y) I x (x, y) I y (x, y) I x (x, y) I y (x, y) Iy(x, 2 (4.21) y) Um die Struktur in einer gewissen Umgebung zu messen, werden die einzelen Bestandteile noch mit einem Gauß- oder Box-Filter (G σ /B w ) gewichtet. [ ] Cxx C C Bw = B w C = xy (4.22) C xy C yy wobei Da C Bw C xx = B w Ix(x, 2 y) C xy = B w I x (x, y) I y (x, y) C yy = B w Iy(x, 2 y) symmetrisch und reell ist, kann sie diagonalisiert werden: [ ] [ ] Cxx C C Bw = B w C = xy λ1 0 J Bw = C xy C yy 0 λ 2 (4.23) mit den Eigenwerten λ 1 und λ 2 und den Eigenvektoren v 1, v 2 : λ 1,2 = 1 2 (C xx + C yy ± (C xx C yy ) 2 + 4C 2 xy)

32 Kapitel 4: Strukturdetektion Abb. 4.18: Ecken eines Grauwertbildes Abb. 4.19: Ecken eines geometrischen Objekts. Die Eigenvektoren v 1 und v 2 sind die Lösung der Gleichung: (C Bw λ 1,2 I)v = 0 und geben die Hauptrichtungen der lokalen Grauwertstruktur mit der Stärke λ 1,2 an. Um Ecken zu detektieren, werden alle Punkte an denen λ 2 > Schwellwert ist, als Ecken ausgewählt. Es wird nur λ 2 benötigt, da λ 2 nur einen signifikanten Wert hat, wenn λ 1 >> 0 ist. Als weiteres Kriterium für die Existenz einer Ecke, kann die Differenz von λ 1 und λ 2 λ 1 λ 2 = 1 (C xx C yy ) 2 2 + 4Cxy 2 betrachtet werden. Nur wenn eine Ecke eine sehr kleine Differenz hat, also λ 1 und λ 2 ähnlich groß, ist es eine signifikante Ecke. 4.4 Morphologische Filter Ein Gebiet der Bildverarbeitung ist die Morphologie, die sich mit der Gestaltsänderung von Bildobjekten beschäftigt. Dabei werden die Bildobjekte modifiziert und

Abschnitt 4.4: Morphologische Filter 33 analysiert. Mit morphologischen Filtern können Informationen über Objekte im Bild gewonnen werden. Morphologische Filter können sowohl auf Binär- als auch auf Grauwertbildern angewendet werden. 4.4.1 Morphologische Filter auf Binärbildern Um die Objekte in einem Binärbild zu modifizieren, werden die Operationen der Bool schen Algebra benötigt, die nur auf einem Binärbild I B (x, y) angewendet werden können. Bei diesen Operationen ist das Ergebnis entweder 0 oder 1 (vgl. [9]). AND p q OR p q COMPLEMENT not p Wie bei den linearen Filtern, kann eine Faltung auf I B (x, y) definiert werden. Dabei ist die Maske M eine normierte l l-matrix mit l = 2k + 1, k N. Definition 4.4.1 (binäre Faltung: Dilatation) Binäre Faltung angewendet auf das Bild I B (x, y): mit. h B (x, y) = k k i= k j= k M(i, j) I(x i, y j) (4.24) x = 2,3 m 1 y = 2,3 n 1 Ist nun die Maske M eine Einheitsmatrix, so werden Objekte ausgedehnt und Löcher gefüllt. Außerdem werden Konturen glatter. Diese Operation wird als Dilatation bezeichnet und kann auch als Mengenoperation von Pixeln aufgefasst werden. Das Ergebnis der Dilatation hängt von der Art der Maske M ab. Definition 4.4.2 (Dilatation) G M = {p : M p G } (4.25) mit G =Menge aller Objektpixel M =Menge der Maskenpixel mit M(i, j) = 1 M p =Maske M zum Referenzpunkt p verschoben

34 Kapitel 4: Strukturdetektion Diese Definition ist mit der Definition 4.4.1 bei Bildern mit symmetrischen Masken äquivalent. Das Gegenteil der Dilatation ist die Erosion. Ist M wieder eine Einheitsmatrix, so ist das Ergebnis dieser Operation nur 1, wenn die betrachtete Maske vollständig innerhalb des Objekts liegt. So verschwinden Objekte, die kleiner als die Maske sind. Objekte mit kleinen Verbindungen werden getrennt und das Objekt erodiert. Definition 4.4.3 (binäre Faltung:Erosion) Binäre Faltung angewendet auf das Bild I B (x, y): k k h B (x, y) = M(i, j) I(x i, y j) (4.26) i= k j= k mit x = 2,3 m 1 y = 2,3 n 1. Definition 4.4.4 (Erosion) G M = {p : M p G} (4.27) mit G =Menge aller Objektpixel M =Menge der Maskenpixel mit M(i, j) = 1 M p =Maske M zum Referenzpunkt p verschoben Diese Definition ist mit der Definition 4.4.2 bei Bildern mit symmetrischen Masken äquivalent. Aus diesen beiden Operationen kann man viele weitere zusammensetzen. 4.4.1.1 Öffnen Das Öffnen (Opening) stellt eine Kombination von Erosion und Dilatation dar, um kleine Objekte aus dem Bild zu löschen, die anderen Objekte dabei aber nicht zu verändern. G M = (G M) M (4.28) Erst werden kleine Objekte durch die Erosion entfernt. Dadurch verkleinern sich alle Objekte. Um diese Verkleinerung rückgängig zu machen, folgt eine Dilatation mit der gleichen Maske, die die dann noch vorhandenen Objekte wieder auf Originalgröße bringt. Es werden alle Objekte entfernt, die kleiner als die Maske sind.

Abschnitt 4.4: Morphologische Filter 35 4.4.1.2 Schließen Das Schließen (Closing) schließt Lücken in und kleine Brücken zwischen Objekten. G M = (G M) M (4.29) Durch die Dilatation werden die Lücken und Brücken geschlossen. Alle anderen Objekte werden hierdurch vergrößert. Dies wird durch die Erosion wieder rückgängig gemacht. 4.4.1.3 Thinning Das Thinning erodiert Objekte, ohne die Objekte zu trennen oder in ihrer Länge zu verkürzen. Dabei ist eine Erosion möglich, bis das Objekt nur noch einen Pixel breit oder bei Objekten ohne Lücken nur noch ein Pixel vorhanden ist. Hat man ein Objekt, das in einer 8-er Nachbarschaft existiert, so erodiert man mit einer Maske mit 4-er Nachbarschaft: 0 1 0 1 1 1 (4.30) 0 1 0 In dieser Matrix sind fünf Pixel besetzt, d.h. es gibt 2 5 = 32 Möglichkeiten, welchen Wert diese Pixel im Bild annehmen können. Bei einer Erosion wird nur dann ein Pixel nicht erodiert, wenn alle fünf Pixel der Maske im Bild 0 sind. Beim Thinning gelten nun in bestimmten Fällen andere Regeln: Ein Pixel darf bei folgenden binären Mustern nicht erodiert werden: Keine Trennung von Objekten 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 Keine Erosion von Endpunkten 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 Objekt darf nicht verschwinden 0 0 0 0 1 0 0 0 0 Den Thinning-Operator kann man mithilfe von binären Nachschautabellen implementieren. Diese besteht aus 32 binären Elementen, wobei jedes Elemente für ein binäres Muster besteht. Die Adresse dieser Elemente berechnet sich aus den 1- Elementen der Maske. Man setzt die Adresse überall dort auf 1, wo die Maske einen Eintrag besitzt. Soll das Objekt am Ende nur noch einen Pixel breit sein, so wendet man den Thinning-Operatoren solange iterativ an, bis er keine Änderungen mehr bewirkt.