Home Index of Lectures << Prev Next >>

Image Processing: Histogram and Image Defects

Copyright © by V. Miszalok, last update: 2011-07-02
Mail me...
Let me know
what you think

  Histogramm
  Abtastfehler Rauschen = Noise
  Abtastfehler ungleichmäßige Beleuchtung = Shading
  Abtastfehler geringer Kontrast
  Abtastfehler Bildunschärfe = Verwaschung = Blurring.


Histogramm

Das Histogramm eines Bildes ist ein Array der Länge 256, wobei jedes Feld H[g] die Anzahl der Pixel des Bildes enthält, die den Grauwert g haben.
H[0] enthält also die Zahl der Nullen im Bild, H[1] die Zahl der Einsen usw.
Grauwert- und Palettenbilder besitzen ein, TrueColor-Bilder besitzen drei Histogramme.
Das Histogramm bzw. die drei Histogramme informieren über grundlegende Bildeigenschaften: Belichtung, Kontrast, Farbanteile etc.

Beispiel: Code für das berechnen des Histogramms int H[256] eines Bildes Byte I[ySize][xSize],
        H muss mit Nullen vorbesetzt sein.
Langsamer Code:
for ( y=0; y < ySize; y++ )
  for ( x=0; x < xSize; x++ )
    H[I[y][x]]++;

Schneller Code:
int* pointer = I;
for ( i=0; i < xSize*ySize; i++ ) H[*(pointer+i)]++;

Sehr schneller Code:
for ( int* pointer = I; pointer < I + xSize*ySize; ) H[*pointer++]++;

Beispiel: gegeben I[4][5], gesucht H[10]

         01020
I[4][5]= 27891    Lösung: H = [ 5, 4, 3, 2, 0, 1, 1, 2, 1, 1 ]
         06571    Probe: Summe des Histogramms muss ySize*xSize = 4*5 = 20 ergeben.
         13230

Histogramme werden in der Regel in Form von Balkendiagrammen visualisiert. Auf der horizontalen Achse verlaufen die Grauwerte von 0 bis 255, parallel zur vertikalen Achse stehen die Häufigkeiten. Professionelle Videokameras zeigen die drei (RGB) Histogramme online auf den Bildmonitoren. Das ermöglicht dem Kameramann ein Online-Kontrolle von Beleuchtung, Blende, Bildausschnitt etc.
Beispiele für häufige und berühmte Histogramme:

Binarisierung ist eine wichtige Stufe zur Vorbereitung einer Mustererkennung. Man benötigt dazu eine Schwelle = Threshold, die Vordergrund von Hintergrund trennt. Ideal geeignet zur Schwellwertfindung sind zweigipflige Histogramme, wo man die Schwelle ins Tal zwischen den beiden Gipfeln positioniert.
Binarisierungsalgorithmus für Bilder mit zweigipfligen Histogrammen:
Langsamer Code:
for ( y=0; y < ySize; y++ )
  for ( x=0; x < xSize; x++ )
     if ( I[y][x]] < threshold ) I[y][x] = 0; else I[y][x] = 255;

Schneller Code:
int* pointer = I;
for ( i=0; i < xSize*ySize; i++, pointer++ ) if ( *pointer < threshold ) *pointer = 0; else *pointer = 255;


Sie finden eine Bauanleitung zu diesem Thema unter: C_IPCis/C2_Histo/CIPCisHisto_e.htm,
oder Sie können eine lauffähiges EXE downloaden: C_IPCis/C2_Histo/CIPCisHisto.exe.

 

Abtastfehler Rauschen = Noise


Lena with 50% Noise

Rauschen ( engl.: noise ) ist die additive Überlagerung eines idealen Bildes I mit einer Zufallsfunktion N.
Beispiel:

    0000       1021                1021
I = 0550   N = 2101   Bild = I+N = 2651
    0000       0102                0102

Fast jedes reale Bild enthält > 10% Rauschen. Primärursache ist eine spontane Ladungstrennung in den Elementarsensoren, die nicht von Photonen verursacht ist, sondern von der Brown'schen Molekularbewegung. Häufige Sekundärursachen: 1) kopieren analoger Videos, 2) lange Lagerzeiten bespielter Magnetbänder.
Man bekämpft das primäre Rauschen durch Chipkühlung des Sensorarrays mit flüssigem Stickstoff oder Peltier-Element (benannt nach Jean Peltier 1834) = 2-schichtige Platte, die unter Gleichstrom auf der einen Seite kalt und auf der anderen warm wird. Molekularbewegung und Rauschen sinken bei fallender Temperatur des Sensorarrays und verschwinden bei -273 Grad Celsius. Chipkühlung = wichtige Eigenschaft professioneller Videoaufnahmetechnik. Nachteil: hoher Energieverbrauch = kurze Akkulaufzeit.
Andere Methode der Rauschunterdrückung = Tiefpassfilter (siehe unten)
siehe auch: www.kovalevsky.de/ImProc/L01_Noise/Noise_e.htm

 

Abtastfehler ungleichmäßige Beleuchtung = Shading


Lena with Shading

Shading ist die additive Überlagerung eines idealen Bildes I mit einer langsam ansteigenden oder abfallenden Rampenfunktion S. Eigentlich heißt Shading wörtlich übersetzt Schattierung, was die Sachlage falsch beschreibt. Shading hat nichts mit Schatten zu tun, die Bezeichnung ist irreführend, aber sie wird trotzdem benutzt (außer in Japan und China, wo man viel treffender "schräges Licht" sagt).
Beispiel Shading:

  22222     -2-1+0+1+2            01234
I=66666   S=-2-1+0+1+2   Bild=I+S=45678
  22222     -2-1+0+1+2            01234

Fast jedes reale Bild enthält >1% Shading. Es ist schwer, eine Fläche homogen auszuleuchten.
Shadingkorrektur: Erzeugung eines Leerbildes S, das keinen Bildgegenstand enthält und Subtraktion: I = Bild - S.
Methoden zur Erzeugung eines Leerbildes S:
1) real: Immer 2 Photos aufnehmen: mit und ohne Bildgegenstand
2) künstlich: Bild unter Milchglasscheibe photographieren, so dass man die ungleichmäßige Beleuchtung erkennt aber keinen Bildinhalt
3) digital: auf Bild starken Tiefpassfilter anwenden, so dass man die ungleichmäßige Beleuchtung erkennt aber keinen Bildinhalt
4) digital: vertikale Regressionsgeraden der Bildspalten und anschließende horizontale Regression der Zeilen liefert ein exzellentes Leerbild ohne jeden Bildinhalt (siehe C#-Programm: Demo: shading.exe).
In der realen Welt gibt es überall schweres Shading. Alle natürliche Bildverarbeitung hat keinerlei Probleme damit und empfindet seine Existenz kaum als Mangel. Aber für die maschinellen Bildverarbeitung ist Shading ist ein schweres Problem, weil es die Binarisierung an Hand einer Schwelle stört.
Siehe obiges Beispiel: Zur Binarisierung von I eignen sich alle Schwellwerte zwischen 3 und 5, aber für Bild gibt es überhaupt keinen brauchbaren Schwellwert.

C# Code: shading.htm      shading.pdf      Demo: shading.exe
 

Abtastfehler geringer Kontrast



Dreimal Lena mit schlechtem Kontrast:
oben = weder dunkel noch hell, nur flau
Mitte = unterbelichtet
unten = überbelichtet

Definition von Kontrast:
Kontrast = 100% * (max.Grauwert - min.Grauwert) / 255;

Liegt max.Grauwert < 255 oder min.Grauwert > 0, dann sinkt der Kontrast auf unter 100%. Dies ist der Fall bei Fehlbelichtungen und bei altem Bildmaterial, wo die Pigmente ausbleichen oder nachdunkeln.
physikalische Bekämpfung von schlechtem Kontrast: korrekt belichten
digitale Bekämpfung von schlechtem Kontrast: Histogrammspreizung


Wichtig: Guter Kontrast ist keine Garantie für ein gutes Bild !
Beispiel 1: Starkes Rauschen ergibt meist guten Kontrast.
Beispiel 2: Starkes Shading ergibt meist guten Kontrast.
Beispiel 3: In einem total weißen oder total schwarzen Bild kann ein einziges Pixel mit Grauwert 0 oder 255 den Kontrast auf 100% heben.

 

Abtastfehler Bildunschärfe = Verwaschung = Blurring

Bildunschärfe = Verwaschung ist die „Glättung“ eines idealen Bildes I dadurch, dass jeder Grauwert durch seine Nachbargrauwerte hinauf oder hinab gezogen wird.
Ursachen: Falscher Focus, Bewegung des Objekts, Bewegung der Kamera (=Verwackeln), Streulicht
Ursachen von Streulicht: Nebel, unsaubere optische Flächen, Fremdkörper im Strahlengang

Beispiel:

    0000000                0013100
    0099900                0136310
I = 0099900  -> Blurring = 0369630
    0099900                0136310
    0000000                0013100
siehe: Image Processing: Average Filter

Home Index of Lectures << Prev Next >>