Morphologie
Morphologie beschäftigt sich mit der Form/Gestalt von Objekten. Ursprünglich beschäftigt sich die Morphologie nur mit Binärbildern, man kann die meisten morphologischen Operationen aber auf Grauwertbilder erweitern.
Dilation und Erosion
Bei diesen Operationen betrachtet man eine Pixelmenge und definiert Mengenoperationen. Die betrachteten Mengen sind jeweils die um eine Gitterkoordinate angeordneten Pixel. Welche Pixel ausgenwählt werden bestimmt das Strukturelement. Hier einige Beispiele für eine 12 × 12 Umgebung:
Für Binärbilder kann man die Werte der Pixel in der mit dem Strukturelemt ausgewählten Menge
als True/False interpretieren und die lgosche Operatoren Und ∧ und Oder ∨ anwenden.
Die Dilation erhält man mit
Die Erosion erhält man mit
Hier ein Beispiel für das Original Binärbild, die Dilation und die Erosion mit einer 3×3 Matrix aus 1 als Strukturelement
Als Strukturelement wird meist eine 2n+1× 2n+1 Umgebung benutzt, hier ein Beispiel für die Strukturelemente, Box im Rot-Kannal, Raute im Grün-Kannal und Raute im Blau-Kannal
Opening und Closing
Diese beiden Basis operationen kann man kombinieren zur:
Opening O[P]=D[E(P)]
Closing C[P]=E[D(P)]
Oening und Closing mit verschiedenen Strukturelementen, Box im Rot-Kannal, Raute im Grün-Kannal und Raute im Blau-Kannal
Beide Operationen sind idempotent, also E(E(P))=E(p) und D(D(P)=D(P)
Grauwertmorphologie
Man kann diese Operationen auf Grauwertbilder erweitern in dem man
Die Dilation mit
definiert.
Und die Erosion mit
Hier ein Beispiel (Original, Dilation, Erosion)
Analog erhält man für Opening und Closing (Original, Opening, Closing)
Morphologischen Filter
TopHat/BottomHat Filter
Der Tophat Filter wird aus der Differenz von Bild minus Opening des Bildes gebildet
Der Bottomhat Filter wird aus der Differenz von Bild minus Closing des Bildes gebildet
Morphologischer Gradient
Der morphologische Gradient ist die Differenz zwischen Dilation und Erosion
Morphologischer Rand
Der morphologischer Rand ist die Differenz zwischen Bild und Erosion
Verbundene Komponenten
Pixel Nachbarschaft
Für Vordergrund und Hintergrund werden unterschiedliche Nachbarschaften gewählt. Also Vorergund
und Hintergrund
oder umgekehrt.
Anwendung verbundener Komponenten
Das Suchen verbundener Komponenten wird extrem häufig verwendet. Mögliche Anwendungen sind
Zählen der Objekte
Filtern nach der Grösse/Eigenschaften der Objekte
Algorithmen für das Suche nach verbundenen Komponenten
Scanline Algorithmus
Der Algorithmus braucht zwei Durchläufe.
Im ersten Durchlauf wird für ein Fordergrund pixel
ein vorhandenes Label aus dem bereits bearbeiteten Bild gewählt, sind alle Pixel
Hintegrund Pixel wird ein neues Label vergeben, gibt es mehr als ein Label in
so wird eine Äquivalenz zwischen diesen Labeln gespeichert.
Der erste Duchlauf erzeugt 4 Label und die Information, dass Label 2 und 3 und Label 3 und 4 äquivalent sind. Dann müssen diese Äquivalenzen aufgelöst werden, besonders muss auch aufgelöst werden, dass auch Label 2 und 4 äquivalent sind.
Im zweiten Durchlauf müssen dan die äquivalenten Label ersetzt werden.
Füllalgorithmus
Beim Füllalgorithmus wird das Bild solange abgesucht, bis ein Vordergrundpixel gefunden ist, diese wird mit einem neuen Label versehen und alle Vordergrundpixel in der Umgebung auf eine Stack geschoben. Das wird solange wiederholt bis der Stack leer ist.
Skelettierung/Thinning
Schrifterkenneung
topologische Beschreibung von Objekten (nur mit Rauschunterdrückung)
Now lets look like the skeleton (it should be a point) change with the shape noise.
In[39]:=
Out[39]=
Initialization
In[20]:=
In[21]:=
Out[21]=
In[22]:=
Out[22]=
In[23]:=
Out[23]=
In[24]:=
Out[24]=
In[25]:=
Out[25]=
In[26]:=
Out[26]=
In[27]:=
Out[27]=
In[28]:=
Out[28]=
In[29]:=
Out[29]=
In[30]:=
Out[30]=
In[31]:=
Out[31]=
In[32]:=
Out[32]=
In[33]:=
Out[33]=
In[34]:=
In[36]:=
Out[36]=
In[37]:=
Out[37]=
In[38]:=