Prof. Dr.-Ing. Thomas Zielke " Binärbildverarbeitung SS 2013 3.1
Anwendungen von Binärbildern" Ein Bild mit nur zwei Grau/Farb-Stufen nennt man Binärbild. In der Regel werden Bildpunkte mit dem Wert Null (0) als Hintergrund und Bildpunkte mit dem Wert 1 (bzw. 255 bei 8-Bit-Bildern) als Objektpunkte betrachtet. Wichtige Anwendungen von Binärbildern sind: Übertragung und Speicherung von Textdokumenten in Form von Rasterbildern (Fax, Archivierung von eingescannten Papierdokumenten). Einfache Objektanalyse und Vermessungsaufgaben in der industriellen Bildverarbeitung. Repräsentation bzw. Maskierung von Bildregionen bei der digitalen Bildverarbeitung und bei der Videoproduktion (z.b. Bluebox-Verfahren). SS 2013 3.2
Entstehung von Binärbildern (1)" Bei der digitalen Verarbeitung von Textdokumenten oder Zeichnungen werden die Rasterbilder oft direkt als Binärbilddateien erzeugt (i.d.r. mit Hilfe eines Scanners). Binärbilder entstehen auch als Zwischenergebnisse in komplexen Bildauswerteprozessen (labeling). Aus Grafikelementen erzeugt man Binärbilder durch Rasterung der Objektregionen. Anwendungsbeispiel: Bildmaskierung. Grafisches Grundelement Positionierung Binäre Maske Maskiertes Originalbild SS 2013 3.3
Entstehung von Binärbildern (2) Binarisierung" Als Binarisierung bezeichnet man die Anwendung einer Schwellwert-Operation auf ein Graustufenbild (threshholding): Sei B[i,j] ein Binärbild mit i 0...N-1 (N Zeilen) und j 0...M-1 (M Spalten), dann entsteht B[i,j] aus einem Grauwertbild G[i,j] und einem Schwellwert T durch die Operation : 1 wenn G[i,j] T B[i,j] = Alternativ kann die Schwellwert-Operation von zwei Schwellen T 1 und T 2 abhängen: B[i,j] = 0 sonst 1 wenn T 1 G[i,j] T 2 0 sonst SS 2013 3.4
Beispiele für Schwellwert-Operationen (Binärwert "0" in Blau dargestellt)" Binärbild mit T=48 Binärbild mit T=21 Originalbild, Grauwertbereich: 0...255 Binärbild mit T1=135 und T2=255 Binärbild mit T1=2 und T2=48 SS 2013 3.5
Helligkeitshistogramm (1) brightness histogram" Ein Histogramm der Helligkeits- bzw. Intensitätswerte eines Bildes beschreibt die Häufigkeit mit der die einzelnen diskreten Intensitätsstufen im Bild vorkommen. Das Histogramm ist eines der einfachsten und wichtigsten statistischen Analyseverfahren in der Bildverarbeitung. unsigned char image[480][640]; int histo[256]; int i, j, k; for (k=0; k<256; k+=1) histo[k]=0; /* clear array */ for (i=0; i<480; i+=1) for (j=0; j<640; j+=1) histo[ image[i][j] ] += 1; Algorithmus zur Berechnung eines Helligkeitshistogramms in der Programmiersprache C. Das Bild hat max. 256 Graustufen im Bereich von 0 bis 255. SS 2013 3.6
Helligkeitshistogramm (2) Beispiel" Absolute Häufigkeit der Intensitätsstufen Helligkeitshistogramm von "tools" (Plot erstellt mit Excel) Original- Grauwertbild "tools" 6000 5000 4000 3000 2000 1000 0 Histogramm- Ausgabe von ImageJ Intensitätsstufen: 0...255 SS 2013 3.7
Schwellwert-Bestimmung zur objektbezogenen Binarisierung von Grauwertbildern (1)" Mit einem "idealen" Schwellwert sollte man Objekt und Hintergrund exakt trennen können nur selten möglich. Mit einem "optimalen" Schwellwert erreicht man die theoretisch und/oder perzeptiv beste Trennung von Objekt und Hintergrund. Das Histogramm ist das wichtigstes Hilfsmittel für die Bestimmung des "besten" Schwellwerts. Zur Histogrammanalyse gibt es viele z.t. komplexe Verfahren. In Bildern von natürlichen Szenen (normale Lebensumgebungen von Menschen) können Objekte i.d.r. nicht durch Grauwertschwellen vom Hintergrund unterschieden werden! SS 2013 3.8
Schwellwert-Bestimmung zur objektbezogenen Binarisierung von Grauwertbildern (2)" In Bildern von künstlichen Szenen können Objekte mit homogenen Oberflächen oft durch eine Schwellwertoperation getrennt werden. Übliche Annahme: Die Helligkeitsverteilungen sowohl der Objekte als auch des Hintergrunds ähneln der Normalverteilung. Modell Hintergrund Helligkeitsverteilung des Objekts Histogramm SS 2013 3.9
Vermessung von binären Bildobjekten (1) Größe / Fläche (size / area)" Es sei B[i,j] ein Binärbild mit dem Wertevorrat {0,1} und den Dimensionen N (Zeilenanzahl) und M (Spaltenanzahl). Die Fläche (Größe) A des Binärbildes berechnet sich als: (0,0) Bsp. "Flugzeug": A=72 (Objektpixel schwarz) j N!1 " i=0 M!1 " j= 0 A = B[i, j] i 20 x 30 Pixel Auflösungsreduktion um Faktor 100 bzw. um Faktor 10 in beiden Dimensionen 200 x 300 Pixel SS 2013 3.10
Vermessung von binären Bildobjekten (2) Position / Schwerpunkt (position / center of area)" Das Binärbild B[i,j] hat Hintergrund-Pixel mit dem Wert 0 (hier weiß dargestellt) und Objektpixel mit dem Wert 1 (hier schwarz dargestellt). Die Flächenschwerpunkt (y c,x c ) des Binärbildes berechnet sich als: (0,0) 13.4 10.3 i 20 x 30 Pixel j xc = yc = # N "1 # M"1 i=0 j=0 A # N "1 # M"1 i=0 j=0 A j!b [i,j ] i!b[ i, j ] Flächenschwerpunkt des Flugzeugs: y c =10.3, x c =13.4 SS 2013 3.11
Vermessung von binären Bildobjekten (3) Orientierung (orientation)" Die "Massenträgheitsachse" (axis of least second moment) liefert eine Information über die Orientierung eines Binärbilds. Für die Berechnung der Orientierung wird der Ursprung des Koordinatensystems zunächst in den Flächenschwerpunkt (y c,x c ) des Bildobjekts verschoben. (0,0) r θ Flächenschwerpunkt (y c,x c ) c "Orientierungsachse" SS 2013 3.12
Vermessung von binären Bildobjekten (4) Berechnung der Orientierung" Flächenschwerpunkt (y c,x c ) c j Der Winkel θ wird von der r-achse gegen den Uhrzeigersinn gemessen. Die Orientierungsachse wird durch den Flächenschwerpunkt und den Winkel θ bestimmt: i! r tan(2!)= 2 # N"1 M "1 # i =0 j= 0 # N"1 # M "1 i =0 j= 0 i j B[i, j] N"1 M "1 # i =0 j= 0 i 2 B[i, j] " j 2 B[i, j] # SS 2013 3.13
Vermessung von binären Bildobjekten (5) Umfang (perimeter)" Einen einfachen Schätzwert für den Umfang eines binären Bildobjekts erhält man durch Zählen aller Objektpixel, die mindestens ein Hintergrundpixel zum Nachbarn haben. Verschiedene gebräuchliche Definitionen des Umfangs einer digitalen Bildregion liefern zum Teil signifikant unterschiedliche Ergebnisse. Umfang P = 64 "Flugzeug" (Objektpixel weiß und Hintergrundpixel blau dargestellt) Umfang des Objekts "Flugzeug": Die Randpixel (rot) werden gezählt. SS 2013 3.14
Form (shape) von binären Bildobjekten (1) Rundheit (roundness)" Der Kreis ist die rundeste (kompakteste) geometrische Figur. Langgestreckte Figuren sind weniger rund. Für einen Kreis mit Fläche A und Umfang P gilt: P 2 A! 4" Rundheit (roundness) wird definiert als: R = 4! A P 2 A: 2188 P: 173 Rundheit R: 0.92 A: 3680 P: 250 Rundheit R: 0.74 A: 750 P: 255 Rundheit R: 0.14 A: 2311 P: 260 Rundheit R: 0.43 A: 3422 P: 232 Rundheit R: 0.8 A: 507 P: 129 Rundheit R: 0.38 SS 2013 3.15
Projektionen (1) (projections)" Horizontale und vertikale Projektionen eines Bildes erhält man durch die Summation der Pixelwerte entlang der Bildzeilen bzw. Bildspalten. Horizontale Projektion Vertikale Projektion SS 2013 3.16
Projektionen (2) (projections)" Die Projektion H[i] entlang der Zeilen und die Projektion V [j] entlang der Spalten eines Bildes B[i,j] sind definiert als: Horizontale Projektion M!1 " j =0 H[i] = B[i, j] Vertikale Projektion N!1 " i =0 V[ j] = B[i, j] Anwendungsbeispiel für Projektionen: Textsegmentierung SS 2013 3.17
Bounding Box (Umschließendes Rechteck)" Die "bounding box" ist das kleinste umschließende Rechteck eines Objekts im Bild. Projektionen sind ein Hilfsmittel um eine bounding box zu bestimmen. Das Seitenverhältnis (aspect ratio) der bounding box ist ein "Länglichkeitsmerkmal": c max! c min +1 r max! r min +1 c min c max r min r max Bounding Box für "Flugzeug" SS 2013 3.18
Nachbarschaften in digitalen Bildern (im quadratischen/rechteckigen Gitter)" 4-Nachbarschaft: [i+1,j], [i-1,j], [i,j+1], [i,j-1] 8-Nachbarschaft: [i+1,j+1], [i+1,j-1], [i-1, j+1], [i-1,j-1] und alle 4-Nachbarn [i,j] Abstand im quadratischen Gitter: 1 [i,j] 2 (im quadratischen Gitter) SS 2013 3.19
Pfad und Konnektivität (path and connectivity)" Ein Pfad von dem Pixel an Position [i 0,j 0 ] zu dem Pixel an [i n,j n ] ist eine Sequenz von Pixel-Positionen [i 0,j 0 ], [i 1,j 1 ],..., [i n,j n ] so dass der Pixel an [i k,j k ] ein Nachbar des Pixels an [i k+1,j k+1 ] ist, und zwar für alle k mit 0 k n-1. Wenn die Nachbarschaftsrelation 4-verbunden ist (4-Nachbarschaft), dann ist der Pfad ein 4-Pfad; bei einer 8-Nachbarschaft ist der Pfad ein 8-Pfad. Ein Pixel p S wird als verbunden (connected) mit q S bezeichnet, wenn es einen Pfad von p nach q gibt, der vollständig aus Pixeln der Menge S besteht. S kann z.b. die Menge der Pixel mit einem bestimmten Farb- bzw. Grauwert sein. 4-Pfad 8-Pfad SS 2013 3.20
Connected Components (Zusammenhangskomponenten)" Eine Menge von Pixeln, in der jedes Pixel mit allen anderen Pixeln verbunden ist, bezeichnet man als connected component. In der industriellen Bildverarbeitung (machine vision) ist das Finden von connected components in einem Bild eine häufig verwendete Operation component labeling. In der Literatur werden etliche Connected Components Algorithmen beschrieben, die sich hauptsächlich im Rechenaufwand unterscheiden. Connected Component Algorithmus 1 1 1 1 1 1 3 1 3 3 3 3 3 3 2 2 2 2 2 2 2 4 4 4 4 5 5 5 5 5 5 5 SS 2013 3.21
Analyse von Partikeln mit Hilfe von Component Labeling (Beispiel)" Binarisierung Labeling Auswertung (ImageJ: "Analyze Particles") SS 2013 3.22
Distanzmaße (distance measures)" In vielen Anwendungen muss der Abstand zwischen zwei Pixel- Positionen berechnet werden. In der digitalen Geometrie gibt es hierfür mehrere Distanzmaße. Die wichtigsten sind: Euklidische Distanz zwischen zwei Pixeln p und q: D Euclid (p, q) = (i p!i q ) 2 + ( j p! j q ) 2 Beispiel: D Euclid = 5.83 City-Block Distanz zwischen zwei Pixeln p und q: D City ( p, q) = i p! i q + j p! j q Schachbrett Distanz zwischen zwei Pixeln p und q: D Chess (p, q) = max( i p!i q, j p! j q ) Beispiel: D Chess = max(5,3) = 5 Beispiel: D City = 5 + 3 = 8 SS 2013 3.23
Arithmetische und logische Operationen auf Bildern" Arithmetische und logische Operationen werden pixelweise auf das (die) gesamte(n) Bild(er) angewandt. Es gibt drei Formen von Operationen: Einstellige (unäre) Operation. Beispiel: NOT logische Negation der Pixelwerte. Zweistellige Operation mit einem Bild und einer Konstanten als Operanden. Beispiel: Multiplikation aller Pixelwerte mit dem Faktor 1,2 ( Bild wird 20% heller). Zweistellige Operation mit zwei Bildern als Operanden. Beide Bilder müssen gleiche Dimensionen (Zeilenanzahl und Spaltenanzahl) und den gleichen Pixel-Typ (z.b. Byte oder 24-Bit Integer) haben. Beispiel: Addition zweier Bilder ( Bilder werden "gemischt"). SS 2013 3.24
Logische Operationen auf Bildern" Logische Operationen sind in erster Linie wichtig zur Maskierung von Bildregionen. Häufig verwendete logische Operationen: AND AND = OR OR = NOT NOT SS 2013 3.25
Expansion und Schrumpfung (1)" Ein binäres Bildobjekt (connected component) kann systematisch ausgedehnt oder geschrumpft werden. Ein einfaches Verfahren ist: Expansion (expansion) Ändere ein Pixel von '0' zu '1' wenn mindestens ein Nachbarpixel '1' ist. Schrumpfung (shrinking) Ändere ein Pixel von '1' zu '0' wenn mindestens ein Nachbarpixel '0' ist. Geschrumpftes Bild Original ('0': hell, '1': dunkel) Expandiertes Bild SS 2013 3.26
Expansion und Schrumpfung (2)" Die Expansion ist nicht die Umkehrung der Schrumpfung! Expansion gefolgt von Schrumpfung wird benutzt, um ungewollte "Löcher" in binären Bildobjekten zu füllen. Schrumpfung gefolgt von Expansion kann isolierte Stör-Pixel entfernen. Generell können mit Kombinationen von Expansionen und Schrumpfungen sehr nützliche und scheinbar komplexe Operationen auf binären Bildern realisiert werden. Die Klasse dieser Operationen bezeichnet man als Morphologische Filter. SS 2013 3.27
Dilatation und Erosion (dilation and erosion) " In der Theorie der Morphologischen* Bildverarbeitung werden die Generalisierungen von Expansion und Schrumpfung als Dilatation bzw. Erosion bezeichnet. Eine Erosion gefolgt von einer Dilatation wird Opening (Öffnung) genannt. Eine Dilatation gefolgt von einer Erosion wird Closing (Schließung) genannt. *Morphologie ist die Wissenschaft von Gestalt, Form, und Struktur von Körpern SS 2013 3.28
Morphologische Filterung mit Strukturelement (structuring element)" Morphologischer Filterprozess: Der Ursprung des Strukturelements wird sukzessiv über allen Bildpositionen platziert. Nur die mit '1' markierten Felder des Strukturelements werden berücksichtigt. Binärbild (weiß = 0, dunkel = 1) Strukturelement (Ursprung dunkelblau, weiße Felder = don't care) '0' '1' SS 2013 3.29
Dilatation (dilation) " Die Dilatation wird dadurch ausgeführt, dass ein Strukturelement als eine Art Filtermaske über alle Bildpositionen "geschoben" wird: Wenn der Ursprung des Strukturelements (structuring element) auf einer '0' liegt, dann nehme keine Änderung am Zielbild vor (initial vollständig mit '0' besetzt). Wenn der Ursprung des Strukturelements (structuring element) auf einer '1' liegt, dann führe die logische OR-Operation zwischen Strukturelement und Originalbild aus (Zielbildpixel wird '1' wenn mindestens ein '1'-Pixel von Bild und Strukturelement übereinander liegen). 0 Originalbild 1 Strukturelement: x = Ursprung Bild nach der Dilatation; Originalumrisse gestrichelt = '1' SS 2013 3.30
Originalbild Erosion (erosion) " Die Erosion wird dadurch ausgeführt, dass ein Strukturelement als "Filtermaske" über alle Bildpositionen "geschoben" wird: Wenn der Ursprung des Strukturelements (structuring element) auf einer '0' liegt, dann nehme keine Änderung am Zielbild vor (initial vollständig mit den Pixelwerten des Originalbilds besetzt). Wenn der Ursprung des Strukturelements (structuring element) auf einer '1' liegt und mindestens ein '1'-Pixel des Strukturelements auf einem '0'- Pixel des Originalbilds liegt, dann setze diese Zielbildposition auf '0'. 0 1 Strukturelement: x = Ursprung Bild nach der Erosion; Originalumrisse gestrichelt = '1' SS 2013 3.31
Anwendung von Dilatation und Erosion (Beispiele) " Resultat einer Erosion (1 Iteration) Originalbinärbild Resultat einer Dilatation (1 Iteration) Ergebnis nach Sequenz von Dilatation und Erosion (je 2 Iterationen) SS 2013 3.32
Morphologische Filterung weitere Beispiele" Original-Binärbild Opening (Erosion gefolgt von einer Dilatation) Closing Dilatation gefolgt von einer Erosion Erosion Dilatation SS 2013 3.33