13.07.2015 Aufrufe

Morphologische Bildoperationen - Technische Universität München

Morphologische Bildoperationen - Technische Universität München

Morphologische Bildoperationen - Technische Universität München

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Morphologische</strong> <strong>Bildoperationen</strong>Frank Stanek<strong>Technische</strong> Universität München09.12.2005ContentsI. Einleitung - <strong>Morphologische</strong> Operationen 2II. Grundlagen 2a. Grundoperationen und deren Funktion . . . . . . . . . . . . . . . . . . . . 31. Dilatation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32. Erosion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4b. Erweiterung von Binär- zu Grauwertbildern . . . . . . . . . . . . . . . . . 5c. Kombinationen und deren Nutzen . . . . . . . . . . . . . . . . . . . . . . 61. Opening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62. Closing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73. Kombination von Opening und Closing . . . . . . . . . . . . . . . 8III. Anwendung in der Bestimmung von Formmerkmalen 8a. Berechnung des Randes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81. Zweck/Nutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82. Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9b. Distanztransformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91. Zweck/Nutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92. Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10c. Hit-or-Miss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111. Zweck/Nutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112. Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113. Erweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12d. Skelettierung / Medial Axis Transform . . . . . . . . . . . . . . . . . . . . 121. Zweck/Nutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122. Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133. Probleme/Nachteile . . . . . . . . . . . . . . . . . . . . . . . . . . 14IV. Morphologie - was ist sie, was ist sie nicht? 151


I. Einleitung - <strong>Morphologische</strong> Operationen<strong>Morphologische</strong> Operationen bieten den Vorteil, auf relativ wenigen und simplen Basisoperationenaufzubauen, gleichzeitig aber durch Kombination dieser Grundoperatoren eineFülle von teils sehr mächtigen Werkzeugen zu bieten. Sie dienen der Verbesserung vonBinär- und Grauwertbildern, beispielsweise zur späteren Bildanalyse aufgrund von Segmentklassifizierung.Dies kann etwa durch Entfernen von Bildrauschen oder störendenArtefakten geschehen. Aber auch komplexere Operationen wie etwa die Distanztransformationoder die Skelettierung existieren, was auch die eigentliche Klassifikation möglichmacht.Im Folgenden soll zunächst kurz auf die notwendigen Grundlagen eingegangen werden.Danach werden der Reihe nach die Basisoperatoren sowie einfache Kombinationen ausdiesen eingeführt. Ferner werden komplexere, fortgeschrittenere Operatoren sowie derenNutzen und Einsatzmöglichkeiten behandelt.II. Grundlagen<strong>Morphologische</strong> Operationen arbeiten grundsätzlich auf bereits segmentierten Bildern.Dies bedeutet, dass das Quellmaterial als Binärbild vorliegt, das in Hintergrund undVordergrund aufgeteilt ist. Den Bildpunkten des Vordergrundes wird dabei der Wert 1oder weiß zugeordnet, denen des Hintergrundes entsprechend 0 bzw. schwarz. Die Einschränkung,nur auf Binärbildern operieren zu können wird im späteren Verlauf teilweiseaufgehoben und das Einsatzgebiet auf Grauwertbilder erweitert.Segmente sind definiert als Regionen von Bildpunkten des Vordergrunds, die zueinanderin Nachbarschaft stehen. Nachbarschaft wird dabei wahlweise als 4-Nachbarschaft,bei der jeweils die Pixel über, unter, rechts und links vom Bezugspixel als dessen Nachbarndefiniert sind, oder als 8-Nachbarschaft, bei der zusätzlich die vier diagonalenNachbarpixel hinzukommen, festgesetzt. Unter der Morphologie (griech., ”die Gestaltbetreffend”) eines Segments versteht man dessen Formmerkmale wie etwa Ausgedehntheit,Konkavitäten oder Anzahl der Löcher.Diese Merkmale der Segmente eines Bildes werden auf verschiedene Weisen durchmorphologische Operationen verarbeitet bzw. interpretiert. Beispiele dafür sind dieVeränderung der Form, Berechnung oder Herausarbeitung von Formmerkmalen, Suchenach bestimmten Formen und Mustern oder die Unterscheidung bzw. Klassifizierungvon Segmenten aufgrund ihrer Formmerkmale.Eine morphologische Operation lässt sich allgemein als g = f s ⋄ s darstellen. f s stehtdabei für die Menge der Segmentpixel, also Bildpunkte, die Teile eines Segments sind. gist die Ergebnismenge nach erfolgter Operation. ⋄ steht für einen der MengenoperatorenSchnitt, Vereinigung oder Differenz. Bei s handelt es sich um ein abhängig vom beabsichtigtenZweck der Operation gewähltes Strukturelement. Dieses kann man sich alsMatrix von gesetzten und nicht gesetzten Bildpunkten veranschaulichen. Strukturelementesind im Allgemeinen, jedoch nicht immer quadratisch. Sie können je nach Zweck2


unterschiedliche Dimensionen annehmen, wie etwa 3×3 oder 5×5. Jedes Strukturelementbesitzt einen Ankerpunkt, der in der Praxis meistens, aber nicht zwingend, in der Mittedes Elements liegt. Die ”Form” eines Strukturelements ist durch die Koordinaten seinerEinselemente gegeben, die normalerweise symmetrisch um den Ankerpunkt angeordnetwerden. Beispiele für Strukturelemente sinds 1 =⎛⎜⎝1 0 01 0 01 1 1⎞⎟⎠ , s 2 =⎛⎜⎝0 0 1 0 00 1 1 1 01 1 1 1 11 1 0 1 11 0 0 0 1⎞.⎟⎠Für die Koordinaten von s 1 würde man in diesem Beispiel angeben alss 1 = {(−1, −1) , (−1, 0) , (−1, 1) , (0, 1) , (1, 1)}Die eigentliche Ausführung einer allgemeinen morphologischen Operation erfolgt folgendermaßen.Das Strukturelement wird am Ankerpunkt über den aktuell zu bearbeitendenPixel gelegt. Das restliche Strukturelement liegt somit über den Nachbarn desaktuellen Pixel. Nun wird jeder Bildpunkt gemäß ⋄ mit dem über ihm liegenden Elementdes Strukturelements verknüpft. Die Vereinigung dieser Resultate bildet das Ergebnis,das an die Stelle des aktuellen Bildpunktes geschrieben wird. Nun wird der Ankerpunktdes Strukturelements über den nächsten Pixel des Segments gelegt und das Verfahrenwiederholt, solange bis das das Strukturelement auf alle Bildpunkte des Quellbildesangewandt wurde.Da als Eingabewerte nur 0 und 1 in Frage kommen und die Operatoren ⋄ nur boolescherArt sein können, kann man als Ergebnisse dieses Verfahrens ebenfalls nur 0 oder 1bekommen. Wären die Eingabewerte beispielsweise Grauwerte, so müsste man geeigneteVerfahren einführen, um nach der Operation wieder sinnvolle Werte zu erhalten. Somitist nun auch die Einschränkung auf Binärbilder verständlich. Eine Möglichkeit zur Erweiterungauf Grauwertbilder wird später vorgestellt.a. Grundoperationen und deren FunktionDie beiden einfachsten morphologischen Operationen sind Dilatation und Erosion. Siesind gleichzeitig die wichtigsten, denn auf ihnen basieren alle anderen Operationen.1. DilatationDie Dilatation eines Bildes f(m, n) mit Ergebnisbild g(m, n) ist formal definiert alsg(m, n) = ∨ (mk ,n k )∈sb(m + m k , n + n k ).b ist hierbei das Binärbild, auf das die Operation angewandt wird. Den Dilatationsoperatorschreibt man ⊕, also wird die Operation als g = f ⊕s geschrieben. Die Koordinatenm k und n k des Strukturelements werden meist symmetrisch um dessen Ankerpunkt festgelegt,bei einer 3 × 3-Matrix also von (−1, −1) bis (1, 1).3


Figure 1: Prinzip der DilatationAnschaulich geschieht nun folgendes. Existiert mindestens ein Bildpunkt, der in einemSegment liegt – also den Wert 1 hat, und von einem gesetzten Element des Strukturelementsüberdeckt wird, so wird das Ergebnis auf 1 gesetzt, andernfalls auf 0. Aufgrunddes logischen ODER-Charakters dieser Operation werden hierbei vorhandene Segmentemeist vergrößert, zusätzlich werden kleinere Löcher in Segmenten geschlossen. Es ist zubeachten, dass falls die Koordinaten des Strukturelements symmetrisch um den Ankerpunktausgelegt sind, zwar die Form, nicht aber die Lage der Segmente innerhalb desBildes verändert wird.Figure 2: Vor und nach der Dilatation2. ErosionBei der Erosion geschieht das Gegenteil der Dilatation. Sie ist formal definiert alsg(m, n) = ∧ (mk ,n k )∈sb(m + m k , n + n k ).Den Dilatationsoperator schreibt man als ⊖, die Operation also als g = f ⊖ s.Da bei der Erosion ein logisches UND ausgeführt wird, wird man als Ergebnis sehrviel seltener eine 1 erhalten als bei der Dilatation. Dies ist nur der Fall, falls alle untergesetzten Elementen des Strukturelements befindlichen Bildpunkte den Wert 1 haben,also Teil eines Segments sind. Hat mindestens einer dieser Pixel den Wert 0, so ist das4


Figure 3: Prinzip der ErosionErgebnis ebenfalls 0. Der Effekt ist, dass ein Teil der Segmente am Rand ”abgetragen”,erodiert wird. Zusätzlich vergrößern sich Löcher innerhalb von Segmenten.Bemerkenswert ist zuletzt noch, dass Segmente, die kleiner als das Strukturelementsind, vollständig verschwinden. Das gilt insbesondere für den Fall, dass man den Erosionsoperatorwiederholt anwenden sollte: die Segmente werden mit jeder Iteration kleinerund verschwinden schließlich komplett. Auch können Segmente, die relativ dünne Stellenaufweisen, ”durchtrennt” werden. Dies sind Effekte die man vermeiden sollte, da dieFormeigenschaften darunter leiden und das Bild im schlimmsten Fall unbrauchbar wird.Figure 4: Vor und nach der Erosionb. Erweiterung von Binär- zu GrauwertbildernUm nun diese beiden Operationen auch auf Grauwertbilder anwenden zu können, mussman die Verfahren so abändern, dass die Ergebnisse der Operationen auf GrauwertbilderErgebnisse liefern, die in sinnvoller Weise denen bei ihrer Anwendung auf Binärbilderentsprechen. Das Ziel muss also sein, sinnvollen Ersatz für die booleschen Operatoren ∨und ∧ zu finden. Wenn man davon ausgeht, dass hellere Bereiche als Vordergrund, alsoals Segmente und dunklere Bereiche als Hintergrund betrachtet werden, dann bietet sichdie folgende Vorgehensweise an. Man ersetzt ∨ durch max und ∧ durch min. Dadurch5


wird bei der Dilatation als Ergebniswert der höchste, also hellste Wert aller Pixel untereinem gesetzten Strukturelement zurückeliefert. Der aktuell bearbeitete Bildpunkt wirdalso höchstwahrscheinlich einen höheren Wert annehmen, es sei denn er hatte selbst denhöchsten Wert. In diesem Fall fände keine Änderung statt. Analog funktioniert dannauch die Erosion, hier nimmt das Pixel unter dem Ankerpunkt den niedrigsten allerermittelten Werte an.Die so abgeänderte Dilatation ist definiert durch()g(m, n) = max b(m + m k , n + n k ) .(m k ,n k )∈sDer Effekt ist, dass hellere Bereiche breiter werden, Segmente sich also vergrößern. Diesentspricht dem Verhalten bei Binärbildern.Entsprechend wird die angepasste Erosion definiert als()g(m, n) = min f(m + m k , n + n k ) .(m k ,n k )∈sHier werden hellere Bereiche und somit Segmente verkleinert. Wiederum ist der Effektäquivalent zur Operation auf Binärbildern.c. Kombinationen und deren NutzenDie beiden Basisoperationen besitzen für sich genommen Vorteile, die bei der Segmentanalysenützlich erscheinen. Störende Artefakte wie Rauschen, das sich als sehr kleine,unerwünschte Segmente oder als Löcher in Segmenten bemerkbar machen kann, könnendurch Erosion bzw. Dilatation im besten Fall vollständig beseitigt werden.Es ist aber offensichtlich, dass diese Grundoperatoren selbst nur von beschränktemNutzen in der Segmentanalyse sind, da sie zwangsläufig die Formmerkmale oder dieGröße der Segmente mehr oder weniger stark verändern. Dies kann aber beispielsweisebei der Klassifizierung von Segmenttypen fatal sein, da diese Veränderungen im schlimmstenFall zur Unkenntlichmachung der Segmente führen.Eine Lösung dieses Problems existiert in der Form, dass man die beiden Operationenkombinieren kann, so dass sich ihre negativen Effekte möglichst ausgleichen, gleichzeitigaber trotzdem eine Verbesserung des Bildes eintreten kann. Je nach Reihenfolge, in derman beide nacheinander ausführt, erhält man somit zwei neue Operationen: Openingund Closing.1. OpeningBei einer Opening-Operation (auch: ”morphologisches Öffnen”) wird zunächst eine Erosionauf dem Quellbild gefolgt von einer Dilatation ausgeführt. Dabei ist wichtig, dassdas Strukturelement der Erosion für die Dilatation am Ankerpunkt punktgespiegelt wird.Der Operator wird als ◦ geschrieben. Die Schreibweise für die Operation ist g = b ◦ s.6


Figure 5: <strong>Morphologische</strong>s ÖffnenIm Detail geschieht folgendes. Durch die Erosion werden sehr kleine Segmente vollständigentfernt. Ausserdem werden Löcher in Segmenten vergrößert, die Segmente selbst verkleinert,möglicherweise werden einzelne auch in mehrere aufgespalten, falls extrem dünneSegmentteile existieren. Führt man jetzt die Dilatation durch, so werden die Segmentebeinahe im selben Maß vergrößert, wie sie zuvor erodiert wurden. Auch Löcherin ihnen werden etwa auf ihr ursprüngliches Maß verkleinert und aufgespaltene Teilewiederhergestellt. Allerdings können die vollständig gelöschten Segmente nicht wiederhergestellt werden.Der letztendliche Effekt ist also, dass sehr kleine Segmente vollständig entfernt werdenkönnen, die restlichen jedoch weitgehend unverändert bleiben. Folglich eignet sich derOpening-Operator dafür, störende Artefakte im Hintergrund zu beseitigen, vorausgesetztman wählt ein Strukturelement von geeigneter Größe.2. ClosingFigure 6: <strong>Morphologische</strong>s SchließenGenau umgekehrt funktioniert der Closing-Operator (auch: ”morphologisches Schließen”).Man führt zuerst eine Dilatation und dann eine Erosion, abermals mit am Ursprungpunktgespiegelten Strukturelement, durch. Der Operator wird mit • dargestellt, wodurch7


sich folgende Schreibweise ergibt: g = b • s.Genau wie zuvor heben sich die unerwünschten Effekte weitgehend auf. Zunächst werdenSegmente vergrößert und Löcher in ihnen werden geschlossen. Im darauf folgendenSchritt werden die Segmente wieder verkleinert, die geschlossenen Löcher bleiben jedochverschwunden.Man kann diesen Operator also dazu verwenden, Löcher im Vordergrund, die durchStörungen bei der Aufnahme oder durch zu hohen Threshold bei der Segmentierungentstanden sind, zu beseitigen. Auch hier gilt es, die Größe der Strukturelemente derartzu wählen, dass sie der Größe der Störungen entsprechen.3. Kombination von Opening und ClosingMan kann nun sogar so weit gehen, diese beiden neuen Operationen wiederum miteinanderzu kombinieren. So kann man beide Effekte nutzen, das Entfernen von Störungensowohl im Hinter- als auch im Vordergrund. Man hat also bereits einen sehr brauchbarenOperator gewonnen um Bilder nachträglich zu verbessern.Um so wichtiger wird es bei diesem Verfahren, dass die Größe der Strukturelementegeeignet festgelegt wird. Die unerwünschten Seiteneffekte der einzelnen Teiloperationenheben sich zwar zum größten Teil auf, jedoch nicht ganz. Ein Beispiel dafür ist die Dilatation,bei der Konkavitäten an Segmenträndern die kleiner als das Strukturelement sind,verloren gehen und auch durch nachfolgende Erosion nicht mehr gerettet werden können.Es gilt also abzuwägen, wieviel Informationsverlust tolerabel ist und dementsprechenddie Strukturelemente zu wählen.III. Anwendung in der Bestimmung von FormmerkmalenMit den bisherigen Operationen haben wir hauptsächlich die Form von Segmenten oderBildteilen verändert um das Bild in irgendeiner Art und Weise von Störungen zu befreien.Zusätzlich haben insbesondere die Basisoperatoren Dilatation und Erosion den Nachteil,dass, wenn man sie wiederholt anwendet, möglicherweise alle Informationen des Bildesverliert – es bleibt nur eine weiße bzw. schwarze Fläche zurück.Mit den folgenden komplexeren Operationen wollen wir nun diesen Nachteil entwederausmerzen oder ihn für unsere Zwecke nutzen und so die uns zur Verfügung stehendenMöglichkeiten um neue Funktionen erweitern. Dazu gehört unter anderem das Herausarbeitenvon charakteristischen Merkmalen einzelner Segmente wie etwa deren Ränder,”Skelette” oder auch Berechnen von Distanzinformationen.a. Berechnung des Randes1. Zweck/NutzenEines der naheliegendsten Merkmale von Segmenten ist ihr Rand oder Umriss. Anhanddessen Form kann man mit geeigneten Verfahren sehr viele Informationen über ihreNatur gewinnen. Es existieren beispielsweise Algorithmen, mit denen man etwa zwischen8


unden oder kantigen Rändern unterscheiden kann. Diese kann man durch genauereAnalyse weiter eingrenzen; so kann ein gerundetes Objekt entweder ein Kreis, ein Ovaloder eine komplexere Form haben. Es ist also möglich, bereits anhand des Randes dieNatur eines Segments sehr genau zu bestimmen. Zusätzlich ist die Randbestimmung füreinige der fortgeschritteneren Verfahren zentraler Bestandteil und bildet so die Basis fürkomplexere morphologische Operationen.2. VorgehensweiseUm den Randbereich der Vordergrundsegmente herauszuarbeiten ist es notwendig, nurdiejenigen Bildpunkte des Quellbilds zu erhalten, die zwar Teil eines Segments, gleichzeitigaber Nachbar von mindestens einem Hintergrundpixel sind. Erneut kann manhier ”Nachbarschaft” entweder als 4- oder als 8-Nachbarschaft festlegen, was unterschliedlicheErgebnisse produziert. Für das Verfahren selbst bedeutet das aber nur einenminimalen Unterschied.Zunächst wählt man das entsprechende Strukturelement. Ist eine 4-Nachbarschaftgewünscht, so hat dieses die Forms 4 =⎛⎜⎝0 1 01 1 10 1 0Wählt man jedoch eine 8-Nachbarschaft, so erweitert man das Strukturelement entsprechend:⎛ ⎞1 1 1⎜ ⎟s 8 = ⎝ 1 1 1 ⎠ .1 1 1Erodiert man nun das Quellbild mittels eines dieser Strukturelemente, so erhält manein Bild in dem die Segmente um die gesuchten Randpixel verkleinert wurden. Manerhält sehr leicht das gewünschte Ergebnis, indem man jetzt das neu entstandene Bildvom Original subtrahiert. Dadurch werden alle Vordergrundpixel auf 0 gesetzt, ausgenommender Randpixel.b. Distanztransformation1. Zweck/NutzenBei einer Distanztransformation wird jedem Pixel eines Segments sein kleinster Abstandzum Segmentrand zugewiesen. Baut man dies weiter aus, so kann man jedem Hintergrundpixelauch einen minimalen Abstand zum Rand eines Segments zuordnen. MitHilfe dieser Informationen lässt sich dann beispielsweise ein Morphing, also ein bewegterÜbergang zwischen Segmenten ausführen. Auch die Ergebnisse, die dieses Verfahrenliefert, sind Voraussetzung für weitere Operationen.⎞⎟⎠ .9


Figure 7: Quelle und deren Distanztransformation2. VorgehensweiseDer Operator zur Randberechnung lässt sich so ausbauen, dass er das Gewünschte leistet.Zuerst wird ein Grauwertbild erstellt, das später die Distanzinformation enthalten soll.Dieses hat die selben Dimensionen wie das Quellbild b. In diesem Distanzbild initialisiertman zunächst alle Pixel mit 0, beginnt also mit einem schwarzen Bild. Später werdendie Pixelwerte in diesem Bild der Distanz der Pixel im Urbild b zu deren Segmentrandentsprechen.Als Ausgangspunkt für das Verfahren benutzt man das Ausgangsbild b 0 = b. Manführt nun iterativ den Operator zur Randberechnung aus wobei man die Anzahl derSchritte in einem Index k zählt, der zu Beginn 0 ist. Für jede neue Iteration erhältman zunächst ein neues, weiter erodiertes Bild b k = b k−1 ⊖ s N . s N ist dabei das zurgewünschten Nachbarschaftsdefinition passende Strukturelement. Einen entsprechendenRand R k berechnet man, indem man das neue Bild vom jeweils vorherigen subtrahiert:R k = b k−1 − b k .Nun gilt es, bei jeder Iteration den aktuellen Index k an den Koordinaten, bei denensich im aktuellen Randbild R k die Randpixel befinden, in das zuvor erstellte Distanzbildzu schreiben. Beim ersten Schritt ist dieser Wert 0. Dies ist korrekt, da wir es in dieserStufe mit dem wirklichen Rand der Segmente zu tun haben; der Abstand muss also 0sein. Je mehr von den Segmenten abgetragen wird, desto weiter wandert der Rand inden Randbildern R k zum Inneren der Segmente. Gleichzeitig wächst k, die Abständewerden also nach innen immer größer.Das Verfahren terminiert schließlich, sobald das Ergebnisbild der letzten Erosion b kkeine Segmente mehr enthält, also keine Bildpunkte, die nicht Null sind. An dieser Stellehat k seinen maximalen Wert k max erreicht, welcher dem größten im Bild gefundenenAbstand zum Rand entspricht. Man kann nun am sich ergebenden Distanzbild dieAbstände der Segmentpixel zum Rand ablesen: je heller, desto größer der Abstand.10


Figure 8: Oben Hit – Unten Missc. Hit-or-Miss1. Zweck/NutzenEs ist denkbar, dass man auf der Suche nach Segmenten ist, über deren Form maneine sehr genaue Vorstellung hat. Einfache Beispiele dafür sind Linien bestimmterLängen, Rechtecke einer bestimmten Größe oder Kreise mit einem gewissen MindestundHöchstradius. Dies leistet der Hit-or-Miss-Operator indem er alle Segmente eliminiert,die nicht exakt (oder wahlweise auch zu einem gewissen Grad) dem gewünschtenMuster entsprechen. Übrig bleiben nur die gesuchten Segmente. Man kann also sehrgezielt und mit sehr hoher Genauigkeit arbeiten, hat aber gleichzeitig die Möglichkeit,eine gewisse Varianz zu erlauben. Dazu muss man lediglich geeignete Strukturelementefestlegen.2. VorgehensweiseDieses Verfahren arbeitet in zwei Schritten. Wir machen uns die Eigenschaften desErosions-Operators zu Nutze, indem wir zunächst Segmente im Bild löschen, die kleinerals das gesuchte Muster sind und somit nicht in Frage kommen. Dazu erodieren wirdas Bild mittels eines Strukturelements, das genau unserer gesuchten Form entspricht.Übrig bleiben Orte, an denen sich das Muster potentiell befinden könnte. Die Segmentean diesen Orten sind aber möglicherweise zu groß.Deshalb führen wir den nächsten Schritt durch: wir verwerfen diejenigen Segmente,die größer als das gesuchte Muster, also auch keine Kandidaten sind. Um das zu erreichen,erodieren wir das Quellbild diesmal mit dem Komplement des vorigen Strukturelements.Das bedeutet, alle Elemente, die zuvor gesetzt waren, sind jetzt nicht gesetztund umgekehrt. Diesmal erhalten wir diejenigen Segmente, die klein genug sind um zuunserer gesuchten Form zu passen. Die Schnittmenge aus den Ergebnissen der beidenSchritte weist schließlich nur noch die Stellen auf, an denen sich die gesuchten Musterbefinden.11


3. ErweiterungDa man auf diese Weise nur exakt spezifizierte Segmente extrahieren kann, möglicherweiseaber nur Grenzwerte bekannt sind, führt man eine Erweiterung ein um etwas Varianzzu erlauben. Einzelne Elemente des Strukturelements dürfen nun auch undefiniert sein;dies wird durch ein x symbolisiert. Bei der Erosions-Operation ist es egal, ob der Bildpunktunter so einem Element gesetzt ist oder nicht, bzw. welchen Wert er im Falleeines Grauwertbildes besitzt. Er wird schlicht ignoriert. Auf diese Weise kann mannach Varianten oder Abstufungen von bestimmten Mustern suchen. Ein Beispiel ist dasStrukturelement⎛⎞s =⎜⎝0 0 0 0 0 0 00 x 1 1 1 x 00 0 0 0 0 0 0Das zugehörige Komplement ist in diesem Fall⎛¯s =⎜⎝1 1 1 1 1 1 11 x 0 0 0 x 11 1 1 1 1 1 1Würde man in s statt der beiden x jeweils eine 0 setzen, so fände man nur Linien mitder Länge 3 (Pixel). Hingegen würde man für die beiden x je 1 setzen, so erhielte mannur Linien mit der Länge 5. Mit dem hier gegebenen Strukturelement jedoch findet manLinien mit den Längen [3; 5].d. Skelettierung / Medial Axis Transform1. Zweck/Nutzen⎟⎠ .⎞⎟⎠ .Figure 9: Prinzip der SkelettierungSkelettierung ist ein Verfahren, bei dem alle Information eines Segments in ein anderes”Datenformat” umgewandelt wird. Statt durch die Koordinaten seiner enthaltenenVordergrundpixel wird das Segment nach dieser Transformation durch die Menge der12


Mittelpunkte maximal großer Inkreise und den dazugehörigen Radien repräsentiert. Dasbedeutet es wird für jeden Randpunkt des Segments von allen ihn berührenden Kreisenderjenige gesucht, der den größtmöglichen Radius besitzt, gleichzeitig aber gerade nochim Segment liegt. Die Menge der Mittelpunkte dieser Kreise bildet bei Segmenten, dieauf einem reellen Wertebereich definiert sind, immer ein zusammenhängendes Gebilde.Dieses nennt man Skelett (engl., ”medial axis”). Aus der Menge dieser Paare lässt sichdas Segment (theoretisch) vollständig wiederherstellen. Es besteht aus der Vereinigungall dieser maximal eingeschriebenen Kreise.Das Skelett kann ein wichtiges Instrument für die Segmentklassifizierung sein. AlsBeispiel sei die Erkennung von Text in einem Bild (OCR — Optical Character Recognition)erwähnt. Es ist sehr schwer bis unmöglich, allein mit den bisher genannten Operatoreneine verlässliche Texterkennung zu implementieren, denn es gibt eine Vielzahlverschiedener Schriftarten, die sich zum Teil sehr stark unterscheiden. Die Skelettierungbietet uns hier eine große Hilfestellung. Mit ihrer Hilfe ist es zumindest rudimentärmöglich, einzelne Segmente auf ihr Wesentliches zu reduzieren. Anhand dessen kann esbedeutend leichter fallen, die markanten Merkmale einzelner Buchstaben oder Zahlen zuerkennen.2. VorgehensweiseEs müssen zunächst zwei Bedingungen gestellt werden um das Skelett konstruieren zukönnen:1. Der Kreis um den Skelettpunkt muss vollständig im Segment liegen.2. Wird ein Randpixel des Segments von einem Kreis berührt, so ist dessen Mittelpunktgenau dann ein Skelettpunkt, wenn es keinen Kreis mit größerem Radiusgibt, der die erste Bedingung erfüllt.Für die erste Bedingung ist uns die Arbeitsweise der Distanztransformation sehr nützlich.Führt man sie auf einen beliebigen Bildpunkt innerhalb des Segments aus, so wird diesemPunkt seine minimale Entfernung zum Rand zugewiesen. Man kann also um jedes Segmentpixelzumindest einen Kreis mit dieser ihm eigenen Distanz als Radius definieren– er wird immer innerhalb des Segments liegen und dabei gleichzeitig zumindest einenRandpunkt berühren.Allerdings gibt es möglicherweise Kreise, die den selben Randpunkt berühren undeinen größeren Radius besitzen. Um also auch die zweite Bedingung zu erfüllen, giltes von allen Mittelpunkten, deren Kreise diesen Randpunkt berühren, denjenigen zufinden, dessen von der Distanztransformation zugewiesene Wert der höchste, also einlokales Maximum ist. Die gesuchten Kreismittelpunkte liegen also auf den ”Graten” desDistanzbildes, auf den Linien, an denen die Maxima entlang laufen.Diese Linien dürfen per Definition nicht gebrochen werden. Deshalb definiert manStrukturelemente, die mittels Hit-or-Miss-Operation für alle acht Richtungen (vertikal,horizontal und diagonal) alle Pixel finden, die gelöscht werden dürfen, ohne dass dabeieine Linie unterbrochen wird. Diese Strukturelemente sind für links (l), rechts (r), oben13


(o) und unten (u) definiert als⎛ ⎞ ⎛0 x 1⎜ ⎟ ⎜s l = ⎝ 0 1 1 ⎠ , s r = ⎝0 x 11 x 01 1 01 x 0⎞⎟⎠ , s o =⎛⎜⎝0 0 0x 1 x1 1 1⎞⎟⎠ , s u =⎛⎜⎝1 1 1x 1 x0 0 0Entsprechend sind die Elemente für die diagonalen Richtungen definiert als⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛0 0 xx 1 1x 0 0⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜s l,u = ⎝ 0 1 1 ⎠ , s l,o = ⎝ 0 1 1 ⎠ , s r,u = ⎝ 1 1 0 ⎠ , s r,o = ⎝x 1 10 0 x1 1 x⎞⎟⎠ .1 1 x1 1 0x 0 0Nun kann das Skelett iterativ berechnet werden, indem man in jedem Schritt zunächstdie Distanztransformation des aktuellen Bildes durchführt. Als nächstes wird für jedesder acht Strukturelemente der Hit-or-Miss-Operator auf das Bild angewandt und so alleBildpunkte entfernt, die nicht zum Skelett gehören. Sobald nach einem kompletten Iterationsschrittkeine Pixel mehr entfernt werden können ist die Prozedur beendet unddas Skelett ist berechnet. Durch die in jedem Durchgang durchgeführte Distanztransformationerhalten die berechneten Kreismittelpunkte ihre jeweilige Distanz vom Randdes Segments – und somit den Radius ihres Kreises.⎞⎟⎠ .Figure 10: Vor und nach der Skelettierung3. Probleme/NachteileTrotz dieser Vorteile ist die Skelettierung nur eingeschränkt nützlich. Sie weist systembedingteinige Schwachpunkte auf, die je nach Anwendungszweck die Nützlichkeit wenigbis sehr stark einschränken können. Ein Problem ist sicherlich, dass in der Bildverarbeitungnicht mit reellen Zahlen sondern mit diskreten Werten gearbeitet wird. Soexistiert beispielsweise in einer diskreten Pixelmatrix kein exakter Kreis. Auch müssenEigenschaften wie die Distanz zwischen zwei Pixeln oder Nachbarschaft im diskretenBildraum approximiert werden. Es ergeben sich also unterschiedliche Möglichkeiten zurDefinition und Interpretation dieser Dinge. Das führt dazu, dass es unterschiedlicheVerfahrensweisen und Algorithmen gibt, die eine Skelettierung implementieren. Diesekönnen dann bei gleichen Eingabewerten zu unterschiedlichen Ergebnissen führen.14


Figure 11: Kleine Ursache – große Wirkung!Noch stärkere Auswirkungen hat allerdings die relativ starke Empfindlichkeit diesesOperators gegenüber kleinen Abweichungen an Segmenten. Ein rechteckiges Segmentmit einer winzigen Ausbeulung kann beispielsweise ein sich von einem normalen Rechteckstark unterscheidendes Ergebnis liefern. Dadurch kann unter Umständen eine Klassifizierungschon durch eine kleine Störung unmöglich gemacht werden.IV. Morphologie - was ist sie, was ist sie nicht?Wir haben nun die Grundlagen der morphologischen <strong>Bildoperationen</strong> und einige daraufaufbauende Verfahren kennengelernt. Unstrittig ist, dass diese Verfahren zum Teil sehrmächtig und gerissen sind. Sie bieten Möglichkeiten um schnelle und effiziente Algorithmenzu entwickeln, um Bilder nachzubessern, zu analysieren oder für andere Zweckeweiter aufzubereiten. Das Konzept, mit relativ wenigen und simplen Kernoperationenallein durch geeignete Wahl eines Strukturelements sehr viele unterschiedliche Zweckeverfolgen zu können, lassen sie auf den ersten Blick unglaublich vielfältig erscheinen.Bei genauer Betrachtung muss man jedoch feststellen, dass die Morphologie nichtganz unproblematisch ist. Dies beginnt damit, dass man auf Binär- oder Grauwertbildereingeschränkt ist. Gräbt man etwas tiefer, so merkt man auch sehr schnell, dass manfür viele Zwecke bereits von Vornherein über die Merkmale der zu verarbeitenden Bildsegmentebescheid wissen muss um brauchbare Ergebnisse zu erhalten. Die Qualität desErgebnisses hängt oft entscheidend von der richtigen Wahl des Strukturelements ab.Literatur1. Klaus D. Tönnies: ”Grundlagen der Bildverarbeitung”, Pearson Studium, 20052. Bernd Jähne: ”Digitale Bildverarbeitung”, 4.Auflage, Springer-Verlag3. http://en.wikipedia.org/wiki/Morphological_image_processing4. http://www.ph.tn.tudelft.nl/Courses/FIP/noframes/fip-Morpholo.html15

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!