Was bedeuten die Begriffe Segmentierung, Region und Label?
Segmentierung:
Identifikation von (Pixel-)Bereichen im Bild, die zu einem Objekt gehören -> Darstellung als “Maske”
Region:
Zusammenhängender Bereich im Binärbild
Es kann mehrere Regionen in einem Bild geben, diese werden dann unterschiedlich gelabelt
Regionen können auf verschiedene Eigenschaften untersucht werden:
Fläche, Umfang, Schwerpunkt, Flächenträgheitsmoment, Richtung der Hauptachse, Mittlere Helligkeit, Konturmerkmal
Label:
Jede Region wird eindeutig makiert -> Separation in mehrere Einzelobjekte
Sinn des Labelings: Vereinzelnte Verarbeitung jedes Objekts anhand dessen Eigenschaften z.B.: Löschen, wenn Fläche zu klein (Rauschen entfernen) oder Klassifikation
Wie funktioniert ein rekursiver Region Growing Algorithmus?
Suche (beliebigen) Startpunkt S innerhalb einer Region, der noch nicht bearbeitet wurde (also noch nicht zu einer Region gehört) als aktuellen Punkt P -> Neue Region mit Label L entsteht, Punkt P hinzufügen
Für alle Nachbarpunkte Ni im Bildbereich (4er oder 8er Nachbarschaft):
a) Falls Ni auch zur Region, aber noch nicht bearbeitet wurde:
Füge Ni zur Region hinzu (Label L)
wähle diesen Punkt als aktuellen Punkt P und fahre bei 2. fort
b) sonst: continue
Kein Nachbar übrig: Erhöhe Labelzahl L<-L+1 und weiter bei 1.
-> Praxis: Rekursiontiefe nicht realisierbar
Wie funktioniert ein iterativer Region Growing Algorithmus?
Suche (beliebigen) Startpunkt S innerhalb einer Region, der noch nicht bearbeitet wurde (also noch nicht zu einer anderen Region gehört) -> Neue Region mit Label L entsteht, Punkt S zum Stack hinzufügen
Solange Stack nicht leer ist:
Hole ein Pixel Element P vom Stack
Füge P der Region/dem Label L hinzu
Für alle Nachbarpunkte Ni von P (in 4er oder 8er Nachbarschaft):
Falls Ni auch zur Region gehört (Vordergrund/Objekt)
dann Füge Ni zum Stack hinzu
sonst continue
Fertig mit aktuellem Objekt (letzter Punkt bearbeitet)?
Ja: fertig
Nein: Erhöhe Labelzahl L<- L+1 und weiter bei 1.
Welche Momente eines Objektes kann man bestimmen und wozu diene sie?
Fläche A
Flächenmoment 0.Grades
Flächeninhalt
Mögliche Anwendung: Entfernen von kleinen Bildbereichen (z.B. Rauschen) -> Threshold für Fläche setzen, alles unter dem Threshold wird entfernt
Schwerpunkt S
Flächenmoment 1.Grades
Flächenträgheitsmoment
Flächenmoment 2.Grades
Informationen über die Form, Größe und Orientierung von Strukturen in Bildern
Was beschreiben Bounding Elements und wozu dienen sie?
beschreiben ein einfaches Pferchelement für erkannte Objekte/Regionen:
Parameter der Pferchelemente können zur Klassifizierung genutzt werden (z.B. Fläche, Winkel, Anzahl Abschnitte bei Convex hull)
Relationen von Pferchelement und Objekt (z.B. Flächenverhältnis Objektpixel/Umkreisfläche)
Achsparallele Bounding Box kann genutzt werden, um einen Bildausschnitt zu erzeugen, der das Objekt vollständig enthält -> kleiner Bildausschnitt zur Weiterverarbeitung
Wozu dient die Circularity (Rundheit)?
Rundheit eines Objekts berechnet sich aus dem Verhältnis von Konturlänge zu Objektfläche
Maximalwert 1.0 (für perfekte Kreise) wird in der Praxis meist nicht erreicht (wg. Diskretisierung)
Merkmal zur Klassifizierung (z.B. Runde Marker im Kalibriermuster vs. Schmutz)
FORMEL FEHLT
Was sind Konturen?
als Konturen wird i.A. der geschlossene binarisierte Rand um eine Region mit 1 Pixel Breite bezeichnet
Außenkontur -> innen Objekt, außen Hintergrund
Innenkontur -> außen Objekt, innen Hintergrund
Konturen können ein Hierarchie (Level) aufweisen
Konturen können sich niemals durchdringen, aber berühren
Beschreibung z.B. als Kettencode möglich
Wie lassen sich Konturen in einem Bild erzeugen?
Binärer Rand mit 1 Pixel Breite erzeugen:
Grauwertbild + Linearer Kantenfilter + Binarisierung
Morphologische Nachoperationen notwendig (Shrinking, Skelettierung)
Aus Binärbild:
Morphologischer Gradient
Erosion mit Cross Shaped Kernel
Mit Maximum-Filter (mit 4er oder 8er)
Kantenbild = Binärbild - MaximumFilter(Binärbild)
Kontur muss eindeutig, auf kürzestem Weg und geschlossen aus dem binarisierten Rand angeleitet werden -> z.B. Freeman Code
Wie lautet ein Algorithmus für die Bestimmung eines Kettencodes?
Wähle beliebigen Startounkt auf der Kontur
Laufe auf der Kontur entlang bis Startpunkt wieder erreicht
Jeder Schritt ist (nur) durch seine Richtung beschrieben
in 4er oder 8er Nachbarschaft möglich
in 8er uneindeutig und ggf. nicht kürzester Weg
Abbruchkriterien (offene Kontur):
Keine unbearbeiteten Konturpunkte mehr aber Startpunkt noch nicht wieder erreicht
vom aktuellen Konturpunkt aus keine unbearbeiteten Nachbarpunkte mehr vorhanden
Wie lässt sich die Konturlänge aus dem Kettencode bestimmen?
Konturlänge l=e+Wurzel(2)*o
e: Anzahl der geraden Elemente
o: Anzahl der ungerade Elemente
Zuletzt geändertvor 2 Jahren