Bildaufnahme – Bildentstehung Bildverarbeitung

Transcription

Bildaufnahme – Bildentstehung Bildverarbeitung
Bildaufnahme – Bildentstehung
Bildverarbeitung
• 
• 
• 
• 
Vorverarbeitung
Segmentierung
Merkmalsextraktion
Klassifikation
11.02.15
Bildverarbeitung ©Reulke15
1
Bildverarbeitungsoperatoren
11.02.15
Bildverarbeitung ©Reulke15
2
Segmentierung
•  Nachbilden des Bilderkennens des Menschen
•  Algorithmen für die automatische Bearbeitung von
digitalen Bilddaten
Ziele:
•  Abstrakte (komprimierte) Beschreibung von Bildinhalten /
-information
•  Quantitative / qualitative Aussagen über die Bildinhalte
•  Erkennung von interessanten Objekten in digitalen
Bildern
•  Einordnung von Objekten in Kategorien oder Klassen
•  Ableitung von (quantitativen & qualitativen) Merkmalen
für diese Objekte
11.02.15
Bildverarbeitung ©Reulke15
3
Segmentierung
•  Bildsegmentierung ist die sinnvolle Zuordnung von Bildpunkten oder
Pixeln zu Objekten oder auch die Zusammenfassung von Pixeln zu
sinnvollen Objekten
•  Nutzen folgende Bildeigenschaften:
–  Grauwert – Farbe – Textur
–  (Geometrie)
•  Nutzen folgende Kriterien:
–  Homogenitäten - Bereichsbasierte Segmentierung
–  Diskontinuitäten - Kantenbasierte Segmentierung
•  Qualitätskontrolle für die Bildsegmentierung ist die menschliche
Wahrnehmung (Erfahrung, Wissen oder Erwartung)
•  Informationen, die im Bild z.T. explizit nicht vorhanden sind, werden
zur „Segmentierung“ herangezogen (Kontext) und beeinflussen das
Ergebnis
11.02.15
Bildverarbeitung ©Reulke15
4
Segmentierung
Herangehen:
•  Suchen in den Bildern nach interessierenden Strukturen
(Objekte) vor dem Hintergrund uninteressanter
Strukturen (Hintergrund)
•  Trennung der zu untersuchenden Objekte von den
„übrigen“ Bildstrukturen
•  Zerlegung von „Makro-“ -objekten in Objekte,
Zusammenfassen von Teilobjekten zu Objekte
•  (Trennung von sich berührenden Objekten)
11.02.15
Bildverarbeitung ©Reulke15
5
Segmentierung
•  Definition (nach Pavlidis, 1977): Bildsegmentierung ist die Einteilung
des Definitionsbereichs R:{x,y} einer diskreten Grauwertfunktion
G(x,y) der Ortskoordinaten x,y in n disjunkte Regionen Ri (i=1,…,n)
nach einem festgelegten Einheitlichkeitskriterium E, so dass gilt:
•  1.)
n
UR
i =1
i
=R
•  2.) jede Region Ri ist räumlich zusammenhängend
•  3.) E( Ri) ist erfüllt in jeder Region Ri
(
)
•  4.) E Ri ∪ R j ist für kein Paar benachbarter Regionen Ri und R j
erfüllt
11.02.15
Bildverarbeitung ©Reulke15
6
Bildverarbeitung und Objekt-Detektion
•  Hintergrund (als Funktion der Zeit)
•  Aktuelles Bild vom Hintergrund abziehen, Binarisieren,
morhologische Bildverarbeitung, Labeling,
Objekteigenschaften ableiten
11.02.15
Bildverarbeitung ©Reulke15
7
Segmentierung - Klassifizierung
Alternatives Herangehen:
•  Statt Lage der Bildpunkte im Ortsbereich der (x,y)Koordinaten, wird die Lage der Bildpunkte im
Merkmalsraum betrachtet
•  "Merkmalsraum" - ein Bild (eine Szene) wird als eine
Menge S von Merkmalsvektoren aufgefasst
•  Treten in S identische Merkmalsvektoren auf, so
bedeuten sie dasselbe Element der Menge
•  Durch die Vorgabe von Einheitlichkeitsprädikaten Pi, i =
0,…, t-1 werden Merkmalsvektoren mit ähnlichen
Eigenschaften zu Teilmengen (Klassen)
zusammengefasst
11.02.15
Bildverarbeitung ©Reulke15
8
Segmentierung - Klassifizierung
•  Beispiel:
–  Extrahieren von Waldfeatures aus einem Color-Infrarotbild
Originalbild
11.02.15
Extrahierte Bäume, Straße, …
Bildverarbeitung ©Reulke15
9
Klassifikation
Merkmale
•  Jeder Bildpunkt stellt einen Punkt in einem N-dimensionalen
Merkmalsraum dar
•  Die Abbildung zeigt einen Merkmalsraum RGB-Bildes, bei dem die
Rot- und Blau-Intensität als Objektmerkmale extrahiert wurden.
•  Der Hintergrund ist dunkel, es sind zwei Objekttypen mit
unterschiedlicher Farbtönung vorhanden.
11.02.15
Bildverarbeitung ©Reulke15
10
Klassifikation
Cluster / Objektklassen
Die Merkmalsvektoren der
Hintergrundpixel konzentrieren sich
im Bereich [1]
Die Punktwolken werden als
Cluster bezeichnet
11.02.15
Die Merkmalsvektoren
für die beiden Objekttypen liegen
in den
Punktwolken [2] und [3]
Bildverarbeitung ©Reulke15
11
Segmentierung
Einheitlichkeitsmaße
•  Grauwerte einer Region Ri liegen innerhalb eines
bestimmten Intervalls [Imin, Imax]
•  Maximale Grauwertunterschiede sind kleiner als ein D
•  Analog für Farb- und Texturunterschiede
(Wenn 3 oder 4 dim. Daten)
•  (in Kombination mit) Tiefen- oder
Geschwindigkeitsinformationen
11.02.15
Bildverarbeitung ©Reulke15
12
Segmentierung
Abstandsmaße
•  gA,B ist ein Grauwert
des Vektors A, B
(Merkmalsvektor in
einem Punkt)
MinT ≤
‚1-norm‘:Betragssumme
‚2-norm‘: Euklidischer Abstand
•  Reference HDevelop
p. 715 / 716
MinT ≤
∑ (g
MinT ≤ 3
∑ (g
MinT ≤
4
∑ (g
MinT ≤
n
‚3-norm‘: p-Norm mit p=3
‚4-norm‘: p-Norm mit p=4
‚n-norm‘: Minowsky-Distanz
‚max-diff‘: Supremumsdistanz
‚min-norm‘: Infimumsdistanz
‚varianz‘: Varianz der
Grauwertdifferenzen
‚dot-produckt‘:
1
∑ g A − g B ≤ MaxT
n
∑ (g
− gB )
2
A
n
− gB )
≤ MaxT
3
A
n
− gB )
≤ MaxT
4
A
n
− gB )
≤ MaxT
n
A
n
≤ MaxT
MinT ≤ max{g A − g B }≤ MaxT
MinT ≤ min{g A − g B }≤ MaxT
MinT ≤ Var(g A − g B ) ≤ MaxT
MinT ≤
11.02.15
Bildverarbeitung ©Reulke15
1
n
(g A g B ) ≤ MaxT
13
Segmentierung
Bereichsbasierte Segmentierung
•  Punktbasierte Schwellwertverfahren: Klassifikation auf
Ebene einzelner Pixel
•  Bereichswachstumsverfahren: Klassifikation unter
Einbezug der Nachbarschaft
•  Homogenitätskriterium – Einheitlichkeitskriterium
(Intensitätswert, Farbe, Textur ...)
Kantenbasierte Segmentierung
•  Diskontinuitätskriterium
Hybride Verfahren (Kombination von kanten- und
bereichsbasierten Verfahren)
11.02.15
Bildverarbeitung ©Reulke15
14
Segmentierung
Probleme:
•  Hintergrund
•  Arbeiten auf Binärbildern – morphologische
Bildverarbeitung
•  Datenstrukturen
11.02.15
Bildverarbeitung ©Reulke15
15
Bereichsbasierte Segmentierung
Schwellwertverfahren
•  Einfache Schwellwertverfahren
•  Helle Objekte auf dunklem Hintergrund oder umgekehrt
•  Zusammenhang zwischen Eingangssignal (Bild) f(x,y)
und Ausgangssignal (segmentiertes Bild) g(x,y):
⎧⎪ I1 ∀ 0 ≤ f ( x, y ) < S
g ( x, y ) = ⎨
⎪⎩ I 2 ∀ S ≤ f ( x, y ) < f max
•  S … Schwelle
•  fmax … maximaler Wert von f
•  I1, I2 … beliebige Zahlenwerte, ideal: 0 / 1 (binarisieren)
11.02.15
Bildverarbeitung ©Reulke15
16
Bereichsbasierte Segmentierung
Schwellwertverfahren
•  Einfaches lokales punktorientiertes
Schwellwertverfahren
•  Ideal: Bimodales Histogramm
•  Schwellwerte zwischen den Maxima
11.02.15
Bildverarbeitung ©Reulke15
17
Bereichsbasierte Segmentierung
Schwellwertverfahren
•  auto threshold segmentiert ein einkanaliges Bild mittels
mehrfachem Thresholding.
•  Relative Histogramm über den Grauwerten wird ermittelt
•  Im Histogramm werden relevante Minima gesucht
•  Schwellen für das Thresholding
•  Für jedes Grauwertintervall wird eine Region erzeugt
•  Die Anzahl der Regionen ist die Anzahl der Minima + 1
•  Um so größer der Wert von Sigma ist, um so weniger Regionen
werden extrahiert
•  Das Verfahren ist dann einsetzbar, wenn die gesuchten Regionen
einheitliche Grauwerte ausweisen (homogene Regionen)
11.02.15
Bildverarbeitung ©Reulke15
18
Bereichsbasierte Segmentierung
Schwellwertverfahren
Nachteile
•  Voraussetzung für das finden einer Schwelle: Objekte
müssen im Vergleich zum Hintergrund unterschiedliche
Intensitäten haben, deren Grauwertbereiche sich nicht
oder nur geringfügig überlappen
•  Oft findet man keine zusammenhängende Bereiche, da
gesuchtes Objekt selber unterschiedliche Intensitäten
aufweist
•  Hintergrundschätzung
11.02.15
Bildverarbeitung ©Reulke15
19
Bereichsbasierte Segmentierung
Schwellwertverfahren (HALCON)
•  auto_threshold - Segmentierung mit Schwellen aus dem
Histogramm
•  bin_threshold - Schwellenwertsegmentierung eines schwarz/weißen
Bildes
•  dyn threshold - Segmentierung mit lokaler Schwelle
•  fast threshold - Schnelle Selektion aller Grauwerte innerhalb eines
Intervalls
•  histo_to_thresh - Berechnung von Grauwertschwellen aus einem
Histogramm
•  Threshold - Selektion aller Grauwerte innerhalb eines Intervalls
•  threshold_sub_pix - Subpixel-genaue Extraktion von GrauwertHöhenlinien in einem Bild
11.02.15
Bildverarbeitung ©Reulke15
20
Bereichsbasierte Segmentierung
Schwellwertverfahren (Hintergrund)
•  Dynamischer Schwellwert
•  gesuchtes Objekt hat homogenen Grauwert, der sich in der lokalen
Umgebung des Objektes vom Hintergrund unterscheidet.
•  Helligkeit des Hintergrundes muss lokal im Bild geschätzt werden
–  Schätzung des Hintergrundes durch starke Glättung (Faustregel:
Glättungsmaske doppelt so groß wie gesuchtes Objekt)
–  Betrachtung der Differenz pro Pixel zwischen originalem und
geglättetem Bild
–  Segmentierung anhand der Differenzen
11.02.15
Bildverarbeitung ©Reulke15
21
Bereichsbasierte Segmentierung
Schwellwertverfahren (Hintergrund)
•  Problem bei Schwellwertoperationen: Schwellwert kann
selten korrekt eingestellt werden.
•  Übersegmentierung, wenn Schwellwert zu großzügig,
Untersegmentierung, wenn Schwellwert zu konservativ
•  Vorsegmentierung in „sicheren Vordergrund“ (s1) und
„sicheren Hintergrund“ (s2)
–  unsichere Grauwerte müssen an sicheren Grauwert angrenzen
–  ausgehend von einem sicheren Grauwert werden iterativ
unsicheren Grauwerte verfolgt
11.02.15
Bildverarbeitung ©Reulke15
22
Bereichsbasierte Segmentierung
Schwellwertverfahren (Hintergrund)
•  Morphologische Ansätze
11.02.15
Bildverarbeitung ©Reulke15
23
Bereichsbasierte Segmentierung
Schwellwertverfahren (Hintergrund)
• 
Hintergrundmodellierung durch Gaußverteilungen
–  Einzelne Verteilungen
–  Kombination von Verteilungen
• 
Beispiel: Verkehrsbeobachtung
–  Änderung von Wetter und Umweltbegingungen
–  Bewegung von Bäumen, Sträuchern,…
–  Z.T. längere Stillstandszeiten der Fahrzeuge
• 
Multi-Gaußverteilung
–  Grauwertverteilung eines jeden Pixels durch gewichtete Summen von
Gaußverteilungen
–  Die am stärksten gewichtete Verteilung ist Hintergrund
11.02.15
Bildverarbeitung ©Reulke15
24
Bereichsbasierte Segmentierung
Bereichswachstumsverfahren
•  Zuordnung benachbarter Bildpunkte mit gleichen oder
ähnlichen Eigenschaften
11.02.15
Bildverarbeitung ©Reulke15
25
Bereichsbasierte Segmentierung
Bereichswachstumsverfahren
•  Zuordnung benachbarter Bildpunkte mit gleichen oder
ähnlichen Eigenschaften
•  Button up – Verfahren
–  Iteratives Verfahren mit einem Startpunkt pro Bereich
•  Problem – Startpunkte
•  Startpunkte sollen im Inneren der Regionen und nicht
auf den Kanten liegen (Analyse von
Intensitätsgradienten)
11.02.15
Bildverarbeitung ©Reulke15
26
Bereichsbasierte Segmentierung
Bereichswachstumsverfahren
•  expand_gray - Füllt „Lücken“ zwischen Regionen
(abhängig vom Grau- oder Farbwert) auf oder trennt
überlappende Regionen
•  expand_gray_ref - Füllt „Lücken“ zwischen Regionen
(abhängig vom Grau- oder Farbwert) auf oder trennt
überlappende Regionen
•  expand_line - Expandieren ausgehend von einer Linie
•  regiongrowing - Segmentierung mit Hilfe von
Flächenwachstum
•  regiongrowing_mean - Flächenwachstum mit
Mittelwertbildung
•  regiongrowing_n - Flächenwachstumverfahren für
mehrkanalige Bilder
11.02.15
Bildverarbeitung ©Reulke15
27
Bereichsbasierte Segmentierung
Bereichswachstumsverfahren
•  regiongrowing n ( MultiChannelImage : Regions :
Metric, MinTolerance, MaxTolerance, MinSize : )
•  Die n Kanäle liefern in jedem Bildpunkt einen ndimensionalen Merkmalsvektor. Benachbarte Punkte
werden zu einer Ausgaberegion zusammengefasst,
wenn die Differenz ihrer Merkmalsvektoren bezüglich der
vorgegebenen Metrik im Intervall [MinTolerance,
MaxTolerance] liegen.
•  Untersucht werden direkte Nachbarn in der 4-er
Nachbarschaft. Dabei stehen eine Reihe von Metriken
zur Verfügung.
11.02.15
Bildverarbeitung ©Reulke15
28
Bereichsbasierte Segmentierung
Bereichswachstumsverfahren
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
Metriken
’1-norm’: Betragssumme
’2-norm’: Euklidischer Abstand
’3-norm’: p - Norm mit p = 3
’4-norm’: p - Norm mit p = 4
’n-norm’: Minkowsky-Distanz
’max-diff’: Supremumsdistanz
’min-diff’: Infimumsdistanz
’variance’: Varianz der Grauwertdifferenzen
…. (Siehe Seite 715 ff)
11.02.15
Bildverarbeitung ©Reulke15
29
Bereichsbasierte Segmentierung
Region Split & Merge
•  Gegenteil von region growing, top-down Ansatz
•  Definieren eines Homogenitätskriteriums (bezogen auf
GW, Farbe & Textur)
•  Beispiel: GW-Variance als Homogenitätskriterium
•  Zerlegen des Bildes in gleich große Regionen
•  Bestimmen der Größe für Homogenitätskriterium für jede
Region
•  Wenn Homogenitätskriterium erfüllt, dann „merge“ mit
Nachbarregionen
•  Falls nicht, dann „split“, also Region weiter zerlegen
11.02.15
Bildverarbeitung ©Reulke15
30
Bereichsbasierte Segmentierung
Region Split & Merge
11.02.15
Bildverarbeitung ©Reulke15
31
Segmentierung
Weiterverarbeitung
•  Auffüllen von Lücken
–  gen_empty_region - Create an empty region
–  expand_gray - Fill gaps between regions (depending on gray
value or color) or split overlapping regions
•  Objektvereinigung und Trennung
11.02.15
Bildverarbeitung ©Reulke15
32
Segmentierungshierarchie
•  mehrere Segmentierungsebenen können erzeugt werden
•  neue Ebenen entstehen durch Zusammenfassen kleinerer
Segmente oder durch Zerlegen größerer Segmente
•  die Grenzen der Segmente werden dabei immer erhalten
11.02.15
Bildverarbeitung ©Reulke15
33
Segmentierung
Halcon
•  http://www.halcon.de/download/documentation/
reference-6.0/cpp/toc_segmentation.html
11.02.15
Bildverarbeitung ©Reulke15
34
Segmentierung
•  Magic Wand, Snakes or Intelligent Scissors
•  GrabCut by Rother, Kolmogorov and Blake [1], [2], based on Boykov
and Jolly’s GraphCut [3]
•  GraphCut is an energy minimization baes segmentation technique
•  The energy function consists of two parts: grey-level histograms give
a global distinction between object and background pixels
•  The (optional) smoothing term depends on the image gradient
•  It is used to make the segmentation boundary fall more likely on
edges
•  From this two properties of every pixel - the probability belonging to
the object or the background, and how likely it is part of an edge - a
S/T-graph is build
•  The two terminals S and T represent the object respectively the
background and the subsequent standard minimumcut/maximumflow algorithm is used to calculate the segmentation border.
11.02.15
Bildverarbeitung ©Reulke15
35
Segmentierung
• 
• 
• 
• 
• 
• 
• 
• 
While GraphCut is still based on gray-level images, GrabCut augment its
usability for color images
The gray-level histgroms are replaced by Gaussian Mixture Models (GMM)
in color space
Two Models with five components each are used for background/object
probalities
C. Rother, V. Kolmogorov, and A. Blake, “Grabcut - interactive foreground
extraction using iterated graph cuts,” Proc. ACM Siggraph, 2004
A. Blake, C. Rother, M. Brown, P. Perez, and P. Torr, “Interactive image
segmentation using an adaptive gmmrf model,” in Proc. European Conf.
Computer Vision, 2004.
Y. Boykov and M.-P. Jolly, “Interactive graph cuts for optimal boundary &
region segmentation of objects in n-d images,” 2001, Vol. I, pp. 105-112.
V Kolmogorov, “Maxflow implementation,”
http://www.cs.cornell.edu/People/vnk/software.html
11.02.15
Bildverarbeitung ©Reulke15
36
Topographische Methoden
• 
• 
• 
• 
Algorithmen sehen Grauwertbild als topographische Oberfläche
Beispiel: Watershed (Wasserscheide)
Man flutet die Oberfläche ausgehend von Minima
Dann wird Wasserspiegel angehoben, bis sich Objekte vor dem
Hintergrund herausheben; damit ist deren Rand gefunden
•  Essentiell: Wahl des Grenzwertes für Verschmelzung
11.02.15
Bildverarbeitung ©Reulke15
37
Kantenbasierte Segmentierung
•  Grauwert, Farbe & Textur, (geometrische Eigenschaften)
•  Kanten - Diskontinuitäten an den Grenzen benachbarter
Regionen
•  Pixelorientiert
•  2 Schritte
–  Detektion von Kanten (-punkten)
–  Kombinieren von Kanten („Chaining“)
•  Detektion von Kanten durch diskrete Ableitungen
•  Ziel: Aus Kantenbild zusammenhängende Regionen
ableiten
11.02.15
Bildverarbeitung ©Reulke15
38
Kantenbasierte Segmentierung
•  Untersuche jedes Pixel im Bild und seine Umgebung, ob
es auf Kante liegt (edge point)
•  Daraus kann ein edge image (edge map) Bild erzeugt
werden, welches die Stärke angibt, mit welcher Pixel im
Bild Teil einer Kante sind
•  Führt man Grenzwertbildung auf edge map durch, so
erhält man ein binäres Kantenbild
•  Man kann statt der Stärke einer Kante auch die Richtung
darstellen (directional edge map)
•  Problem: Punkte zu Kanten verbinden
11.02.15
Bildverarbeitung ©Reulke15
39
Kantenbasierte Segmentierung
•  Detektion von Kanten durch diskrete Ableitungen
11.02.15
Bildverarbeitung ©Reulke15
40
Kantenbasierte Segmentierung
•  Kantenpunktdetektion
–  Gradientenoperatoren
–  1te und 2te Ableitung (Sobel, Prewitt, Laplace, LoG,...)
•  Konturverfolgung/-verkettung/-rekonstruktion/beschreibung/-approximation
–  Konturverkettung mittels Hough-Transformation
–  Konturbeschreibung mittels Kettencode
–  Konturapproximation
11.02.15
Bildverarbeitung ©Reulke15
41
Kantenbasierte Segmentierung
•  Kantenpunktdetektion
–  diskrete Ableitung
–  Differenzengleichung - Grauwertdifferenzen zu Nachbarpunkten
–  1D
∂I ( x)
ΔI ( x) I ( x ) − I ( x − Δx )
≈ Δ x I ( x) =
=
∂x
Δx
Δx
sei Δx = 1
⇒
⇒
⇒
11.02.15
Δ x I ( x) = I ( x ) − I ( x − 1)
( Rückwärtsgradient )
Δ x I ( x) = I ( x + 1) − I ( x ) (Vorwärtsgradient )
I ( x + 1) − I ( x − 1)
Δ x I ( x) =
(Gradient )
2
Bildverarbeitung ©Reulke15
42
Kantenbasierte Segmentierung
–  Filterfunktion
ΔxI j =
0
∑C I
k =−1
k
C = [ −1, 1]
j +k
1 1
Δ x I j = ∑ Ck I j + k
2 k =−1
–  2D-Faltung
C=
( Rückwärtsgradient )
1
[−1, 0,1]
2
(Gradient )
•  Prewitt-Operator zur Verstärkung senkrechter Kanten
•  Prewitt-Operator zur Verstärkung waagerechter Kanten
–  Sobelfilter - Binomialfilter
11.02.15
Bildverarbeitung ©Reulke15
⎡ −1 0 1⎤
⎢ −1 0 1⎥
⎢
⎥
⎢⎣ −1 0 1⎥⎦
⎡ −1 −1 −1⎤
⎢0 0 0⎥
⎢
⎥
⎢⎣ 1 1 1 ⎥⎦
43
Kantenbasierte Segmentierung
•  Amplitude und Richtung
•  Kantenamplitude
–  Betrag der Ableitung
–  Näherung
•  Richtung
G1 = I x2 + I y2
G2 = I x2 + I y2
⎡ Ix ⎤
R = tan ⎢ ⎥
⎢⎣ I y ⎥⎦
−1
•  Kompass-Maske (Kirsch), 8 Richtungen
•  Ableitung in beliebiger Richtung
Δθ I ( x, y ) = Δ x I ( x, y ) ⋅ cos θ + Δ y I ( x, y ) ⋅ sin θ
11.02.15
Bildverarbeitung ©Reulke15
44
Kantenbasierte Segmentierung
Roberts Kantendetektor
Roberts Kantendetektor
•  Basiert auf Berechnung der ersten Ableitung
•  Keine Information über Richtung der Kante
•  Einfachster aller Kantendetektoren, arbeitet sehr
effizient, jedoch sehr anfällig für Rauschen
•  Reagiert auf Steigung in xy und x(-y) Richtung
I R ( x, y ) = I ( x + 1, y + 1) − I ( x, y ) + I ( x + 1, y ) − I ( x, y + 1)
11.02.15
Bildverarbeitung ©Reulke15
45
Kantenbasierte Segmentierung
Sobel Kantendetektor
Sobel Kantendetektor
•  Sucht Kanten in horizontale und vertikale Richtung
•  Liefert an jeder Stelle im Bild Werte für horizontale und
vertikale Richtung
•  Daraus kann Stärke und Richtung der Kante an dieser
Stelle im Bild direkt ermittelt werden
11.02.15
Bildverarbeitung ©Reulke15
46
Kantenbasierte Segmentierung
Kompass-Gradienten-Operator
•  Kombination von verschiedenen Gradientenbildern
•  Erzeugt mit unterschiedlichen Varianten von
Faltungskernen für die verschiedenen Richtungen
11.02.15
Bildverarbeitung ©Reulke15
47
Kantenbasierte Segmentierung
Kirsch Kantendetektor
The Kirsch edge detection masks are called compass masks because they are
defined by talking a single mask and rotating it to the eight mafor compass
orientations: North, Northwest, West, Southwest, South, Southeast, East and
Northeast.
The masks are defined as follows:
k0
k1
k2
k3
⎡− 3 − 3 − 3⎤
⎢− 3 0
⎥
5
⎢
⎥
⎢⎣− 3 − 3 5 ⎥⎦
5⎤
⎡− 3 5
⎢− 3 0
⎥
5
⎢
⎥
⎢⎣− 3 − 3 − 3⎥⎦
5
5⎤
⎡5
⎢− 3 0 − 3⎥
⎢
⎥
⎢⎣− 3 − 3 − 3⎥⎦
5 − 3⎤
⎡5
⎢5
⎥
0
−
3
⎢
⎥
⎢⎣− 3 − 3 − 3⎥⎦
⎡5 − 3 − 3⎤
⎢5 0 − 3⎥
⎢
⎥
⎢⎣5 − 3 − 3⎥⎦
k4
⎡− 3 − 3 − 3⎤
⎢5
⎥
0
−
3
⎢
⎥
⎢⎣ 5
5 − 3⎥⎦
k5
⎡− 3 − 3 − 3⎤
⎢− 3 0 − 3⎥
⎢
⎥
⎢⎣ 5
5
5 ⎥⎦
k6
⎡− 3 − 3 − 3⎤
⎢− 3 0
⎥
5
⎢
⎥
⎢⎣− 3 5
5 ⎥⎦
k7
The edge magnitude is defined as the maximum value found by the convolution
of each of the masks with the image. The edge direction is defined by the mask
that produces the maximum magnitude.
11.02.15
Bildverarbeitung ©Reulke15
48
Kantenbasierte Segmentierung
Laplace Kantendetektor
•  Bestimmung der lokal maximalen Grauwertänderungen durch 2.
Ableitung (Zweite Ableitung hat an Kante einen Nulldurchgang)
•  Laplace Filter: rotations-invariante Masken mit -1 oder 0 Werten am
Rand und positivem Zentral-Wert
•  bei einem nach Laplace gefilterten Bild bilden die Nulldurchgänge
verbundene Kanten von Objekten
•  funktioniert sehr gut bei nicht verrauschten Bildern
11.02.15
Bildverarbeitung ©Reulke15
49
Kantenbasierte Segmentierung
Laplace Kantendetektor
Bestimmung der lokal maximalen Grauwertänderungen durch 2.
Ableitung:
mit
∂ 2 f (x, y ) ∂ 2 f (x, y )
Δf (x, y ) =
+
2
∂x
∂y 2
∂ 2 f (x, y )
= f (x + 1, y ) + f (x − 1, y ) − 2 f (x, y )
2
∂x
∂ 2 f (x, y )
= f (x, y + 1) + f (x, y − 1) − 2 f (x, y )
2
∂y
und damit
Δf (x, y ) = f (x + 1, y ) + f (x −1, y ) + f (x, y + 1) + f (x, y −1) + 4 f (x, y )
11.02.15
Bildverarbeitung ©Reulke15
50
Laplacian of Gaussian Filter
•  Glätten vor Anwendung des Laplace Filters bringt
Nutzen; ein Weg dazu: Glättung nach Gauß
•  Kann in einen Schritt kombiniert werden: LOG Filter
•  Bandpass-Filter, die Rauschen und glatte Bereiche
ausfiltern; also robuste Kanten als Ergebnis liefern
•  Realisierung: separable Filter; Näherung durch DOG
11.02.15
Bildverarbeitung ©Reulke15
51
Kantenbasierte Segmentierung
Frei-Chen Kantendetektor
•  9 Masken bilden eine orthonormale Basis für den Raum
aller 3 x 3 Bilder; f1-f4 detektieren Kanten, f5-f8 betonen
Linien und f9 ebene Flächen
•  Gibt Aussagen über Struktur des Bildes
11.02.15
Bildverarbeitung ©Reulke15
52
Kantenbasierte Segmentierung
•  Kantenfilter
•  edges_image, edges_color – (Farb-) Kantendetektion
mit Canny-, Deriche- oder Shen-Filtern.
•  frei_amp, kirsch-amp, prewitt_amp, robinson_amp,
sobel_amp, laplace, roberts - Kantendetektion
(Amplitude) mit dem Frei-Chen; Kirsch, Prewit,
Robinson, Sobel, Laplace, Roberts-Operator
•  highpass_image - Verstärkung hochfrequenter
Bildanteile
11.02.15
Bildverarbeitung ©Reulke15
53
Kantenbasierte Segmentierung
•  Kantenfilter
•  edges_image, edges_color – (Farb-) Kantendetektion mit Canny-,
Deriche- oder Shen-Filtern.
• 
• 
• 
• 
• 
• 
• 
• 
• 
C. Steger: “Subpixel-Precise Extraction of Lines and Edges”; International Archives of
Photogrammetry and Remote Sensing, vol. XXXIII, part B3; pp. 141-156; 2000.
C. Steger: “Unbiased Extraction of Curvilinear Structures from2D and 3D Images”;Herbert Utz
Verlag,M¨unchen; 1998.
S. Di Zenzo: “A Note on the Gradient of a Multi-Image”; Computer Vision, Graphics, and Image
Processing, vol. 33; pp. 116-125; 1986.
Aldo Cumani: “Edge Detection in Multispectral Images”; Computer Vision, Graphics, and Image
Processing: Graphical Models and Image Processing, vol. 53, no. 1; pp. 40-51; 1991.
J.Canny: “Finding Edges and Lines in Images”; Report, AI-TR-720;M.I.T. Artificial Intelligence
Lab., Cambridge; 1983.
J.Canny: “A Computational Approach to Edge Detection”; IEEE Transactions on Pattern Analysis
and Machine Intelligence; PAMI-8, vol. 6; pp. 679-698; 1986.
R.Deriche: “Using Canny’s Criteria to Derive a Recursively Implemented Optimal Edge
Detector”; International Journal of Computer Vision; vol. 1, no. 2; pp. 167-187; 1987.
R.Deriche: “Fast Algorithms for Low-Level Vision”; IEEE Transactions on Pattern Analysis and
Machine Intelligence; PAMI-12, no. 1; pp. 78-87; 1990.
J. Shen, S. Castan: “An Optimal Linear Operator for Step Edge Detection”; Computer Vision,
Graphics, and Image Processing: Graphical Models and Image Processing, vol. 54, no. 2; pp.
112-133; 1992.
11.02.15
Bildverarbeitung ©Reulke15
54
Kantenbasierte Segmentierung
Kontur & Kantenpunkt
•  Kantenpunkt: einzelnes, punktgroßes Kantenstück
–  Mögliche Kontur besteht nur aus „Lücken“, da Kantenpunkte
nicht logisch zusammengehörig
•  Zusammenhängende Kantenstücke (Kantenpunkte)
–  Lücken können auftreten, einzelne Kantenpunkte einzelner
Kantenstücke gehören logisch zusammen
•  Geschlossene Kontur
–  Keine Lücken, keine einzelne Kantenstücke, ganze Objektkontur
gehört logisch zusammen
11.02.15
Bildverarbeitung ©Reulke15
55
Kantenbasierte Segmentierung
Kantenverfolgung
•  Zusammenhängende Kantenstücke (Kantenpunkte)
–  Lücken können auftreten, einzelne Kantenpunkte einzelner
Kantenstücke gehören logisch zusammen
•  Geschlossene Kontur
–  Keine Lücken, keine einzelne Kantenstücke, ganze Objektkontur
gehört logisch zusammen
•  Ansatz für das Schließen von Lücken etc.
–  Suche in kleiner (z.B. 5 x 5) Nachbarschaft
–  Heuristische Suche mit entsprechendem Gütemaß
–  Anpassen einer Kurve gegebener Struktur (linear, kubisch etc.);
•  macht besonders dann Sinn, wenn nur relativ wenige Punkte der
Kante bekannt sind
11.02.15
Bildverarbeitung ©Reulke15
56
Kantenbasierte Segmentierung
Kantenverfolgung
Boundary Tracking Algorithmen
•  Gegeben: Gradienten-Bild, Startpunkt: Maximum
•  Iteration: betrachte 3 x 3 Fenster
•  Auswahl:
–  Maximum, falls dieses unter den 3 Kandidaten eindeutig ist
–  Diagonaler Nachfolger, falls dieser zumindest gleichwertig
–  Beliebig, falls diese gleichwertig sind
•  Problem: Rauschen; daher Glätten als Vorverarbeitung
11.02.15
Bildverarbeitung ©Reulke15
57
Kantenbasierte Segmentierung
Iterative Endpoint Fit (IEPF)
•  Gegeben: Punkte
11.02.15
Bildverarbeitung ©Reulke15
58
Kantenbasierte Segmentierung
Hough Transformation
•  Quantisiere den (q,r) Raum (Tradeoff: Zeit - Präzision)
•  Übertrage jeden (r,c) Punkt in alle dafür möglichen (q,r)
Punkte; erhöhe im (q,r) Raum an entsprechender Stelle
die Trefferzahl
•  Geraden im Bild werden abschließend dort gefunden, wo
die (q,r) Trefferzahl einen Schwellwert übersteigt
11.02.15
Bildverarbeitung ©Reulke15
59
Kantenbasierte Segmentierung
Hough Transformation
•  Transformiere alle Punkte im Bild in den Raum aller
durch sie verlaufenden Linien
•  Ein Punkt im Bild ergibt dort eine Kurve
•  Eine Linie im Bild ergibt dort einen Punkt
•  Suche nach Schnittpunkten
11.02.15
Bildverarbeitung ©Reulke15
60
Kantenbasierte Segmentierung
Approximation von Konturen
Interpolierende Kurven
•  Polynome (n-ten Grades)
•  Kubische Splines
•  Bezier-Kurven
11.02.15
Bildverarbeitung ©Reulke15
61
Kantenbasierte Segmentierung
Kantenverfolgung
•  Nach Binarisierung Extraktion der weißen Pixel zu
zusammenhängenden Konturen
•  „Ketten-Code“: Verkettung von Richtungsvektoren aus
einem Alphabet
11.02.15
Bildverarbeitung ©Reulke15
62
Weiterverarbeitung
Rangordnungsoperatoren
11.02.15
Bildverarbeitung ©Reulke15
63
Binarisierung – Morphologische
Bildverarbeitung
Dilation
•  Liegt der Ursprung des Struktur-Elements über einer Null
im Bild, so erfährt dieses Pixel keine Änderung
•  Ursprung über einer Eins: alle Pixel unter gesetzten
Stellen im Struktur-Element werden auch gesetzt
•  Objekte wachsen; Lücken werden gefüllt
11.02.15
Bildverarbeitung ©Reulke15
64
Binarisierung – Morphologische
Bildverarbeitung
Erosion
•  Liegt der Ursprung des Struktur-Elements über einer Null
im Bild, so erfährt dieses Pixel keine Änderung
•  Ursprung über einer Eins: ist eine gesetzte Stelle im
Struktur-Element im Bild nicht gesetzt, Löschen!!
•  Objekte schrumpfen; nur „Skelett“ bleibt erhalten
11.02.15
Bildverarbeitung ©Reulke15
65
Binarisierung – Morphologische
Bildverarbeitung
•  Strukturelemente
11.02.15
Bildverarbeitung ©Reulke15
66
Binarisierung – Morphologische
Bildverarbeitung
•  Opening: Erosion, gefolgt von Dilation; glättet
Objektgrenzen ohne deren Fläche zu verändern
•  Closing: Dilation, gefolgt von Erosion; füllt kleinere
Löcher und verbindet geteilte Objekte
•  Shrinking: Erosion, wobei Objekte mit lediglich einem
Pixel erhalten bleiben; erhält Objektzahl
•  Thinning: bedingte Erosion, die Pixel nicht löscht, wenn
Verbindungen getrennt würden
•  Skeletonization, Pruning, Thickening, ........
11.02.15
Bildverarbeitung ©Reulke15
67
Datenstrukturen
•  Object membership map: gleiche Größe wie Originalbild;
an jeder Stelle wir Nummer des Objektes abgelegt, zu
dem das Pixel gehört
•  Boundary chain code: jede Begrenzung ist geschlossene
Kurve; es genügt also, einen Startpunkt und von diesem
ausgehend die Richtung des Nachfolgers (0..7) zu
speichern
•  Line segment encoding: gibt zu jedem Objekt den
Grauwert und die Ausdehnung in jeder Bildzeile an;
Objektvermessung sehr einfach!
11.02.15
Bildverarbeitung ©Reulke15
68
Content-based Based Image Image
Analysis
•  Automatische Aufbereitung von Bildern zur inhaltlichen
Analyse
CBIA nach Metzler/Thies:
•  Unabhängig von Position
•  Unabhängig von Größe/Auflösung (scalespace)
•  Objektsegmentierung im scale-space
•  Automatische Eigenschaftsbeschreibung der Segmente
•  Suche von Eigenschaften durch Formeln oder Muster
11.02.15
Bildverarbeitung ©Reulke15
69
Klassifikation
Merkmale
•  Regionen eines segmentierten Bildes haben noch keine Bedeutung
•  Erste symbolische Beschreibung wird i.d.R. gewonnen
durch
•  ! Bestimmung von Merkmalswerten
•  ! Klassifikation mit Hilfe der Merkmale
•  ! Auswertung der Nachbarschaftsbeziehungen
Typische Merkmale
•  Grauwert (Mittelwert, Standardabweichung)
•  Farbe (r,g,b, nir, tir) und Farbanteile (Mittelwert,
Standardabweichung)
•  Grauwert-Gradient, lokale Kontraste
•  Texturmerkmale
11.02.15
Bildverarbeitung ©Reulke15
70
Klassifikation
Merkmale
Geometrische Bildmerkmale
•  Größe (Fläche, Umfang, Länge, Breite,...)
•  Form (Rundheit, Länglichkeit)
•  Momente
•  Fourierdeskriptoren
Topologische Bildmerkmale
•  Lage eines Objektes zu anderen Objekten
11.02.15
Bildverarbeitung ©Reulke15
71
Klassifikation
Merkmale
•  http://www.halcon.de/download/documentation/
reference-6.0/cpp/toc_regions_features.html
11.02.15
Bildverarbeitung ©Reulke15
72
Klassifikation
Merkmale
Einfache segmentbeschreibende Parameter
•  Flächeninhalt
–  Summe der Pixel, die zu einem Segment gehören
•  Umfang
–  Bestimmung der Länge des Randes eines Segments
•  Kompaktheit
–  V = Umfang2 / Fläche
11.02.15
Bildverarbeitung ©Reulke15
73
Klassifikation
Merkmale
Einfache segmentbeschreibende Parameter
•  Flächenschwerpunkt
–  Schwerpunkt (xcp,ycp) eines „Systems materieller Punkte“ Mj(xj, yj)
mit der Masse mj ergibt sich als
– 
– 
Þ 
- 
- 
Punkte (xij, yij) sind Pixel, die zum Segment i gehören
Masse der Bildpunkte ist 1
Nenner der Formel = Flächeninhalt des Segments
Kreis: U = 2pr, F = r2p, K = 4p (=12.57)
Quadrat: U = 4a, F = a2, K = 16
•  Kompakteste Form ist der Kreis!
11.02.15
Bildverarbeitung ©Reulke15
74
Klassifikation
Merkmale
•  Orientierung eines Segments
–  Dient zur Lagebestimmung von Segmenten
–  Bei deutlichen länglichen Segmenten lässt sich eine
Hauptrichtung ermitteln
•  Chain-Codierung
–  Beschreibt die Kontur eines Segmentes
–  Prinzip: Wandere ausgehend von einem Startpunkt auf der
Kontur im Uhrzeigersinn entlang der Kontur
•  Momente
–  Dienen der translations-, rotations- und skalierungsinvarianten
Beschreibung von Segmenten
•  Euler‘sche Charakteristik
–  Unterscheidung von Segmenten aufgrund Anzahl der „Löcher“
11.02.15
Bildverarbeitung ©Reulke15
75
Klassifikation
Merkmale
11.02.15
Bildverarbeitung ©Reulke15
76
Textur
•  Textur, Definitionen
•  Texturwahrnehmung
•  Texturmodelle
11.02.15
Bildverarbeitung ©Reulke15
77
What is a Texture?
•  An optical pattern…
•  …with a large number of
elements
•  (spatial variations in intensity
or wave length)
•  ...each to some degree
visible, and,
•  on the whole, densely and
evenly arrayed over the field
of view.
(Picket, 1970)
11.02.15
Bildverarbeitung ©Reulke15
78
What can we use textures for?
•  Visualization, Computer
Graphics
–  Enhance realism in Scientific
Visualization, Games, Virtual
Worlds, Simulation, Training,
Architecture etc.
•  Computer/Machine Vision
–  Find and classify objects from
texture information
–  Understanding what is seen
–  Find defects in work pieces
–  Interpret satellite images
–  Textures vary between scene
content
–  Depth/3D perception
11.02.15
Bildverarbeitung ©Reulke15
79
Analysis of Textures: Overview
•  Statistical Analysis
– 
– 
– 
– 
First-Order Statistics
Second-Order Statistics
Higher-Order Statistics
Local Geometric Features
•  Structural Analysis
–  Extraction of edges, regions, elements
–  Shape Analysis
–  Placement Rules
11.02.15
Bildverarbeitung ©Reulke15
80
Statistical Analysis - Overview
•  First-Order Statistics
–  Histogram Statistics
•  Second-Order
Statistics
–  Co-Occurence Matrix
–  Difference Statistics
–  Fourier Power
Spectrum
–  Autoregression Model
11.02.15
•  Higher-Order
Statistics
–  Run Length
•  Local Geometric
Features
– 
– 
– 
Bildverarbeitung ©Reulke15– 
Edge
Peak and Valley
Spot/Blob
Primal Sketch
81
Structural Analysis - Overview
•  Extraction of edges, regions, elements
•  Shape Analysis
•  Placement Rules
–  Tesselations
–  Hierarchical Textures
11.02.15
Bildverarbeitung ©Reulke15
82
Statistical Analysis - First-Order
Statistics - Histogram Statistics
h(i) =
•  Histograms
•  Mean
A
n
∑ ih(i)
i =1
•  Standard Deviation
histogram
n
∑ (i − µ ) h(i)
i =1
•  Third Moment (Skew)
•  Entropy
φ (i)
2
n
∑ (i − µ ) h(i)
3
texture
k
H (k ) = ∑ h(i )
i =1
n
i =1
− ∑ h(i ) log h(i )
cumulative histogram
i =1
•  Kormogorv-Smirnov Test max H 1 (k ) − H 2 (k ) or
k
11.02.15
Bildverarbeitung ©Reulke15
∑ H (k ) − H
1
2
(k )
k
83
Statistical Analysis - Second-Order
Statistics - Co-Occurrence Matrix
•  Pairs of gray values
separated by δ = (r,θ)
•  Generate matrix of frequency
of occcurrence for particular r
and θ (e.g. r = 1 and θ = 0°,
45°, 90°, 135°)
•  Compute properties of
matrices:
n
Angular Second Moment
n −1
Contrast
2
n
i =1 j =1
n
i =1
j =1
i− j =k
∑∑ i ⋅ jPδ (i, j ) − µ µ
i =1 j =1
11.02.15
2
P
(
i
,
j
)
∑∑ δ
∑ k ∑ ∑ Pδ (i, j )
k =0
n n
Correlation
n
x
y
σ Bildverarbeitung
xσ y
©Reulke15
texture
θ = 45°, r = 8
84
Statistical Analysis - Second-Order
Statistics - Difference Statistics
•  Difference Statistics are a subset of
co-occurence matrices
•  Probability of gray-level difference
k separated by δ = (r,θ)
•  Similar
properties:
n −1
∑ Pδ (k )
k =0
2
Angular second moment
11.02.15
n −1
∑k
k =0
Pδ (k ) =
n −1
2
Pδ (k )
Contrast
− ∑ Pδ (k ) log Pδ (k )
k =0
Entropy
Bildverarbeitung ©Reulke15
n
n
∑ ∑ Pδ (i, j )
i =1
j =1
i − j =k
n −1
∑ k Pδ (k )
k =0
Mean
85
Statistical Analysis - Second-Order Statistics
- Power Spectrum
•  Fourier transform
I −1 J −1
F (u, v) = ∑∑ f ( x, y ) e
− 2π i (
ux vy
+ )
I J
x =0 y =0
•  Power spectrum
P(u, v) = F (u, v)
2
•  Bajcsy (1973) used polar
coordinates
Lenna image and fourier spectrum
–  peaks show dominant texture sizes
or tesselation directivity
–  ring and wedge filtering
π
P ( r ) = 2∑ P ( r , θ )
θ =0
n/2
P(θ ) = ∑ P(r , θ )
r =0
11.02.15
Bildverarbeitung ©Reulke15
Ring filter (a)
Wedge filter (b)
86
Statistical Analysis - Second-Order
Statistics - Autoregression Model
•  f(x,y) is the gray level at point (x,y)
•  linear combination of neighborhood
gray levels
•  with white noise w(x,y) added
f ( x, y ) =
•  Determine best values for matrix
by calculation of an error function
a
M
N
∑ ∑
p =− M q =− N
( p ,q ) ≠ ( 0, 0)
a pq f ( x − p, y − q) + w( x, y )
pq
•  Resulting matrix classifies the
texture
11.02.15
Bildverarbeitung ©Reulke15
(x,y)
87
Statistical Analysis – Higher Order
Statistics
•  Run-length statistics
–  Run-length matrix
Holds the frequency that j points
with gray level i continue in the
direction θ.
–  Properties
• 
• 
• 
• 
Short/Long runs emphasis
Gray Level Nonuniformity
Run-length Nununiformity
Run Percentage
–  Is used in compression algorithms
for code table generation
11.02.15
Bildverarbeitung ©Reulke15
88
Statistical Analysis – Local Geometric
Features
•  Local Geometric
Features
–  Edges
First order statistics of
the distribution of edge
elements allow
generation of
properties like
coarseness, contrast,
randomness and
directivity
–  Peak and Valley
Horizontal and vertical
scans of the image to
detect local intensity
extrema. Their number
and size characterize
the texture.
11.02.15
–  Spot/Blob
By using a special spot/
blob detector, one can
determine the average
spot size in a texture,
which correlates with the
coarseness. Davis et al.
(1979) used regularity
properties of spots while
analyzing aerial
photographs.
–  Primal Sketch
Marr (1976) proposed a
technique of correlating
an image with various
primitive masks (edges,
bars etc.) and thereby
synthesizing a sketch
similar to the image.
Bildverarbeitung ©Reulke15
89
Structural Analysis - Overview
•  Extraction of Texture Elements
–  Segmenation
–  Shape Analysis
•  Placement Rules
–  Tesselations
–  Voronoi diagrams
–  Hierarchical Textures
11.02.15
Bildverarbeitung ©Reulke15
90
Structural Analysis – Texture Elements
- Extraction of Texture Elements
•  Texture Elements: uniform
intensity region of simple
shape
•  Extraction:
–  Image Segmentation
–  Medial-axes (thinning and
distance transformation)
–  Segment axes to simple subaxes
–  Expand each subaxis
•  Result: Atomic texture
elements
Bildverarbeitung ©Reulke15
11.02.15
91
Structural Analysis – Placement
Rules - Tessellations
• 
Regular Tessellation: A
tessellation in which each shape
is a regular polygon and all the
shapes are congruent
• 
Semiregular Tessellation: Only
regular polygons and the
arrangement of polygons at every
vertex point is the same
• 
3 Regular Tessellations
–  {6,6,6} {3,3,3,3,3,3} {4,4,4,4}
• 
8 Semiregular Tessellations
–  {3,12,12} {4,6,12} {4,8,8} {3,6,3,6}
{3,4,6,4} {3,3,3,3,6} {3,3,3,4,4}
{3,3,4,3,4}
• 
Zucker (1976) describes a
synthesis/classification approach
using tessellations
11.02.15
Bildverarbeitung ©Reulke15
92
Structural Analysis – Placement
Rules - Voronoi diagrams
•  Voronoi diagram: borders
between the locii of all points
in the plane closer to their
generating point than to any
other.
•  Delaunay triangulation:
connecting neighboring
points in the diagram.
•  Graphs can be used to find
clusters in positions of
texture elements and
derivation of placement rules
11.02.15
Bildverarbeitung ©Reulke15
93
Structural Analysis – Hierarchical Textures
•  Textures can superpose
each other even on
hierarchical levels
•  Texture elements and
placement rules for all
levels have to be found
Plain Texture
•  Search for larger texture
levels has to be
continued until the toplevel in the hierarchy is
reached
Hierarchical Texture
11.02.15
Bildverarbeitung ©Reulke15
94
”Fuzzyfying” the Image
•  In the first step of ”fuzzyfying” an image, it is converted
from an array of gray values to an array of
”membership”.
•  Fuzzification of the bark texture images by using Zadeh’s
S-Function
x ≤ a,
⎧ 0
⎪
2
x
−
a
⎛
⎞
⎪2
a < x ≤ b,
⎪⎪ ⎝⎜ c − a ⎠⎟
µ ( x) = ⎨
2
x
−
a
⎛
⎞
⎪
1
−
2
⎜
⎟ b < x ≤ c,
⎪
⎝ c−a ⎠
⎪
x > c.
⎪⎩ 1
L. A. Zadeh. Fuzzy sets as a basis for a theory of possibility. Fuzzy Sets and Systems, 1:3,1978.
11.02.15
Bildverarbeitung ©Reulke15
95
”Fuzzyfying” and Fuzzy Measures
•  Zadeh’s S-Function works as an nonlinear response function
•  The parameters a, b, c reflects the a priory knowledge about the
image
•  Special radiometric parts of the image can be intensified or
suppressed
•  Mapping of a [0,1] range smears also differences between 8 bit and
e.g. 12 bit images and makes results comparable
•  Use the following fuzzy measures:
– 
– 
– 
– 
11.02.15
Area,
perimeter,
compactness
(logarithmic) entropy
Bildverarbeitung ©Reulke15
96
Fuzzy Measures (Area)
a ( X ) = ∑∑ µmn = ∑ µ (l ) ⋅ h (l )
m
n
l
•  ”Brightness membership” can be found in the image, simply sums
up all membership values
•  An image half black, half of it white can not be distinguished from an
all gray alternative by only using the area-parameter
•  It’s value can grow arbitrarily for larger images
Pal S.K. Kundu, M.K. Automatic selection of object enhancement operator with quantitative justification based
on fuzzy set theoretic measures. Pattern Recognition Letters, 11:811–829, 1990.
11.02.15
Bildverarbeitung ©Reulke15
97
Fuzzy Measures (Perimeter)
p ( X ) = ∑∑ µmn − µm,n+1 + ∑∑ µmn − µm+1,n
m
n
m
n
•  The perimeter is the sum-up of all absolute membership
changes between neighbors in 4-neighborhoods
•  It is a measure for the rate of change between
neighboring memberships, therefore a measure of
”contrast” in the image
•  Like the area parameter, the perimeter’s limit is given
only by the size of the image
•  Remarkably, images of only one constant brightness,
regardless of value, would always yield a 0 perimeter.
11.02.15
Bildverarbeitung ©Reulke15
98
Fuzzy Measures (compactness)
a(X )
comp ( X ) = 2
p (X )
•  The compactness, aggregating area and perimeter
•  Is a measure that doesn’t change for smaller or bigger
images
•  (While the area and perimeter of a texture grow
boundless for larger images, the compactness just
wouldn’t change)
11.02.15
Bildverarbeitung ©Reulke15
99
Fuzzy Measures (Entropy)
H (X ) =
1
Te ( l ) ⋅ h (l )
∑
MN ln 2 l
Te (l ) = −µ (l ) ⋅ ln µ (l ) − (1 − µ (l )) ⋅ ln (1 − µ (l ))
•  Entropy - sum of all vagueness values in the image,
normalized to the size of the image and the maximum of
Te
•  The more the memberships are displaced from the 0 and
1 margins, the more their vagueness increase.
•  It serves as a measure for the overall uncertainty found
in the image
11.02.15
Bildverarbeitung ©Reulke15
100
Fuzzy Measures (Entropy)
•  The function Te(l) assigns a vagueness value according
to its distance to the ”certain” bounds 0 and 1.
•  Membership in the middle of the interval [0, 1] yield the
highest vagueness value
Te (l ) = −µ (l ) ⋅ ln µ (l ) − (1 − µ (l )) ⋅ ln (1 − µ (l ))
11.02.15
Bildverarbeitung ©Reulke15
101
Results
•  For analysis, 6 different trees and 12 texture samples per each tree
(400x400 pixels size) have been chosen Computed texture
parameters
–  similar for equal tree types
–  different for varying tree types
11.02.15
Bildverarbeitung ©Reulke15
102
Results (Entropy)
•  Entropy values calculated for all texture categories
11.02.15
Bildverarbeitung ©Reulke15
103
Results (Compactness)
•  Compactness values calculated for all texture categories
11.02.15
Bildverarbeitung ©Reulke15
104
Results (Entropy / Compactness)
11.02.15
Bildverarbeitung ©Reulke15
105
Bilder – Objekte – Punkte
•  Verbindung von zwei oder mehreren Bildern
•  Temporäre Veränderungen
11.02.15
Bildverarbeitung ©Reulke15
106
Korrelation - Punkte & Strukturen
•  Punkte (an denen sich das Bildsignal zweidimensional ändert)
•  Kreuzungspunkte - Änderung an den Schnittpunkte von
Grauwertkanten
•  Flächenpunkte - Stellen, deren Farbe oder Helligkeit sich von ihrer
Umgebung unterscheidet
•  I ist das Eingabe- und R das Ergebnisbild der Filterung
•  Zur Glättung (W) z.B. gauss_image, zur Berechnung der Ableitung
(∇) z.B. sobel_amp
•  Förstner, Harris, Sojka
11.02.15
Bildverarbeitung ©Reulke15
107
Korrelation - Punkte & Strukturen
•  points_foerstner extrahiert signifikante Punkte
Punkextraktion
1.  Extrahieren der Punktregionen (inhomogene Regionen mit hoher
n
Isotropie)
⎛ n
•  Ix,c und Iy,c - ersten
Ableitungen der
Bildkanäle
•  S - Glättung
2
I
⎜ ∑ x ,c
c =1
M = S ⋅⎜ n
⎜
⎜ ∑ I x ,c I y ,c
⎝ c =1
⎞
I
I
∑
x ,c y ,c ⎟
c =1
⎟
n
⎟
2
I y ,c ⎟
∑
c =1
⎠
–  Inhomogenität = Spur(M)
–  Isotropie = 4 ·DetM / (SpurM)2 (Isotropie der Textur im Bild.)
2. Optimierung (geben für jeden Bildpunkt durchschnittlichen Abstände zu
den Kanten- (Kreuzungspunkte) bzw. Gradientenrichtungen
(Flächenpunkte) innerhalb eines Beobachtungsfensters um den Punkt
wieder.
11.02.15
Bildverarbeitung ©Reulke15
108
Maske
Korrelation
•  Anwendung
Korrelationskoeffizient
Funktion
Grauwert
Korrelation
250
200
150
100
50
0
0
20
40
60
80
100
Position
100
.
0
.
-100
0
20
40
60
Position
80
100
–  Bestimmung der Ähnlichkeit von 2 Signalen
–  Bildzuordnung
•  Parallaxenmesung, Messung von Rahmenmarken
11.02.15
Bildverarbeitung ©Reulke15
109
Korrelation
Beispiel Halcon: optical_flow_match.dev
11.02.15
Bildverarbeitung ©Reulke15
110
Anwendung Korrelation: Automatische
Bildzuordnung
Eingabebild
Rahmenmarke
Da
s
Bil
d
Eingabebild
Maske
(Ausschnitt)
11.02.15
Maske
(Muster)
Ergebnisbildr
Maximum
•  Zuordnung von Bildausschnitten
–  Stereobildzuordnung
–  Messung von
Rahmenmarken
Bildverarbeitung
©Reulke15
Ergebnisbild
111
Korrelation Beispiel HALCON
Beispiel Halcon: disparity.dev
11.02.15
Bildverarbeitung ©Reulke15
112
Korrelation Beispiel HALCON
11.02.15
Beispiel Halcon: disparity.dev
Bildverarbeitung ©Reulke15
113
Globale Operatoren
•  Fouriertransformation
•  Wavelet
•  …
11.02.15
Bildverarbeitung ©Reulke15
114
Transformationen
• 
• 
• 
FFT – Fast Fourier Transformation
DCT – Diskrete Cosinus Transformation
Wavelets
Daten sollen umgewandelt (transformiert) werden, so dass
1.  Eine Bearbeitung weniger aufwendig ist,
2.  Eine eindeutige Wiederherstellung durch
Rücktransformation möglich ist
11.02.15
Bildverarbeitung ©Reulke15
115
Transformationen
•  Transformation und Rücktransformation sind aufwendig
Aber:
•  Berechnungen im transformierten Raum sind wesentlich
einfacher
Beispiel: Lösen der Gleichung X=Y / Z ohne Taschenrechner
X=Y/Z
Transformation
log(X) = log (Y) – log (Z)
Hoher Aufwand
Geringer Aufwand
Durch Division
Durch Subtraktion
Lösung
11.02.15
Rücktransformation
Bildverarbeitung ©Reulke15
Lösung
116
Fouriertransformation
1822 Jean-Baptiste-Joseph Fourier:
„Die analytische Theorie der Wärme“
•  Darstellung von Funktionen durch die Summe von Sinusund Kosinusfunktionen
⎛
⎜
⎜
⎜
⎜⎜
⎝
f0 ⎞
⎛
⎞ ⎛ x0 ⎞
⎟
⎟
⎜
⎟ ⎜
f1 ⎟ 1 ⎜
⎟ ⎜ x1 ⎟
=
Fouriermatrix ⎟ * ⎜
⎟
⎜
!
! ⎟
n
⎟⎟
⎟⎟
⎜⎜
⎟⎟ ⎜⎜
f n−1 ⎠
⎝
⎠ ⎝ xn−1 ⎠
Normierung
11.02.15
Bildverarbeitung ©Reulke15
117
Fouriertransformation
Fouriertransformation
Bearbeitung
Inverse
Fouriertransformation
11.02.15
Bildverarbeitung ©Reulke15
118
Diskrete Fouriertransformation
•  Signale können als Überlagerung
(Summe) periodischer Funktionen mit
–  Frequenzen n und mit
–  Amplituden F
dargestellt werden.
⎛ 2πν
f ( x) = ∑ f%(ν ) cos ⎜
⎝ N
u =0
N −1
Cosinus Funktionen Sinus Funktionen
⎞
⎛ 2πν
x ⎟ + i ⋅ f%(ν ) sin ⎜
⎠
⎝ N
⎞
x⎟
⎠
•  Diese Koeffizienten geben an, mit welcher
Intensität die entsprechende Frequenz der
Funktionen bewertet wird.
11.02.15
Bildverarbeitung ©Reulke15
119
Diskrete Fouriertransformation
•  Rechteckschwingungen
•  Dreieckschwingungen
11.02.15
Bildverarbeitung ©Reulke15
120
Diskrete Fouriertransformation
11.02.15
Bildverarbeitung ©Reulke15
121
Fast Fouriertransformation
Idee:
•  Einzelne Berechnungen der Matrix-Vektor-Multiplikation
in bestimmter Reihenfolge ausführen und schon
berechnete Zwischenwerte benutzen
•  n muss dafür eine 2er-Potenz sein
11.02.15
Bildverarbeitung ©Reulke15
122
Fouriertransformation - Filter
•  Tiefpassfilter mit
H ( x, y ) =
1
2πσ
e
2
−
x2 + y 2
2σ 2
•  Faltung - Führe anstelle der Faltung im Ortsraum eine
Multiplikation im Frequenzraum durch
H ( x, y) = e
11.02.15
−2π 2σ 2ν 2
Bildverarbeitung ©Reulke15
123
Diskrete Cosinus Transformation
•  DCT wird bei JPEG und MPEG benutzt
•  Bei JPEG wird die DCT auf 8*8=64 Pixel angewandt
11.02.15
Bildverarbeitung ©Reulke15
124
DCT - Idee
•  Gerade Funktion, d.h. f(x) = f(-x)
•  Fouriertransformation anwenden:
•  Dabei wird der imaginäre Anteil 0
11.02.15
Bildverarbeitung ©Reulke15
125
Wavelets
•  Funktionen können auch durch die Summe von anderen
Funktionen (Basisfunktionen) dargestellt werden.
•  Die Transformation geht schrittweise voran
•  Wavelets werden z.B. bei JPEG2000 benutzt
11.02.15
Bildverarbeitung ©Reulke15
126
Wavelets
•  Als Basisfunktion kann jede orthogonale Funktion
genommen werden, für die gilt:
∞
∫ h(t )dt = 0
−∞
•  Daher auch die Bezeichnung Wavelet engl. Wave =
Welle
11.02.15
Bildverarbeitung ©Reulke15
127
Haar-Wavelet
11.02.15
Bildverarbeitung ©Reulke15
128
Weitere Wavelet - Beispiele
Daubechies 6
11.02.15
Daubechies 8
Bildverarbeitung ©Reulke15
129
Grundprinzip
Berechnung des Mittelwertes und der Differenz
- Tiefpass und Hochpassanteile werden gespeichert.
- Der Tiefpassanteil wird weiter analysiert.
- durch immer kleiner werdender Hochpassanteile und
einen einzigen Tiefpassanteil gekennzeichnet
11.02.15
Bildverarbeitung ©Reulke15
130
Beispiel
11.02.15
13 13
5
13
11 19
5
5
9
13 17 21
0
0
-2
-2
9 15
4
-4
0
0
-2
-2
12 -3
4
-4
0
0
-2
-2
Bildverarbeitung ©Reulke15
131
Grundprinzip Grafik 1
11.02.15
Bildverarbeitung ©Reulke15
132
Grundprinzip Grafik 2
11.02.15
Bildverarbeitung ©Reulke15
133
Quellen & weiterführende Literatur
•  Elbert Oran Brigham (1995) Schnelle Fourier
Transformation
•  Josef Hoffmann (1991) Bildkompression mit DCT
und anderen Transformationen
•  Daubechies I. (1992) Ten Lectures on Wavelets
11.02.15
Bildverarbeitung ©Reulke15
134