Die Pixel einer Rastergrafik haben einen Farbwert, der in der Regel als Kombination aus Rot, Grün und Blau dargestellt wird. Ein Histogramm speichert zu jeder möglichen Intensität eines Farbwertes, wie viele Pixel mit dieser Intensität im Bild vorkommen. Unterschiedliche Histogramm-Typen unterscheiden sich dadurch, welcher Intensitätsbegriff zu Grunde gelegt wird. Als Intensität kann zum Beispiel die Gesamt-Helligkeit eines Pixels definiert werden, die Helligkeit eines einzelnen Kanals (Rot, Grün oder Blau) oder auch eine Kombination daraus.
Im Folgenden betrachten wir Graustufen-Bilder, da mit ihnen bereits die grundlegenden Eigenschaften von Histogrammen demonstriert werden können.
Das Bildverarbeitungsprogramm GIMP bietet über den Menüpunkt
Tools > Color Tools > Desaturate
die Möglichkeit, Bilder in Graustufen zu
konvertieren. Dazu stehen die Optionen Lightness
, Luminosity
und
Average
zur Verfügung, die sich darin unterscheiden, mit welcher
Gewichtung die Farbinformation der einzelnen Farbkanäle zur
Gesamthelligkeit kombiniert wird. Wir verwenden die Option
Luminosity
, die durch entsprechende Gewichtung berücksichtigt, dass
der Grün-Anteil eines Pixels seine Helligkeit für das menschliche Auge
stärker beeinflusst als Rot und Blau. Die Option Average
gewichtet
alle drei Farbkanäle gleich, während Lightness
eine subjektive
Helligkeit anhand eines komplizierteren Zusammenhangs berechnet als
Luminosity
.
Der Menüpunkt Tools > Color Tools > Curves
öffnet einen Dialog, in
dem das Histogramm eines Bildes angezeigt wird.
Als erstes Beispiel betrachten wir ein dunkles Bild, das wir vorher in Graustufen umgewandelt haben.
Bild mit überwiegend dunklen Pixeln | Histogramm des dunklen Bildes |
---|---|
Das Histogramm dieses Bildes zeigt für jeden Grauwert zwischen 0 und 255, wie viele Pixel mit diesem Grauwert im Bild vorhanden sind. Auf der x-Achse sind dazu die Grauwerte aufgetragen und auf der y-Achse die entsprechende Anzahl von Pixeln.
Wir können erkennen, dass die meisten Pixel niedrige (also dunkle) Grauwerte haben, denn diesen ist eine deutlich größere Anzahl zugeordnet als den hohen (also hellen) Grauwerten.
Am linken Rand des Histogramms ist außerdem eine Häufung zu erkennen, die andeutet, dass das Bild leicht unterbelichtet ist, also dunkle Pixel, die in der Originalszene eigentlich unterschiedliche Intensitäten hatten, alle mit dem niedrigsten Grauwert (schwarz) dargestellt sind. Ebenso kann es in hellen Bildern auftreten, dass viele unterschiedlich helle Stellen mit dem höchsten Grauwert (weiß) dargestellt sind. In diesem Fall wäre das Bild überbelichtet. Spitzen an den Rändern des Histogramms sind im Fall von Fotos also ein Indikator für eine unpassende Belichtungszeit bei der Aufnahme.
Als zweites Beispiel betrachten wir nun ein helles Bild und sein Histogramm.
Bild mit überwiegend hellen Pixeln | Histogramm des hellen Bildes |
---|---|
Hier sind vor allem hohen (also hellen) Grauwerten eine große Anzahl von Pixeln zugeordnet.
Die Helligkeit eines Bildes lässt sich am Histogramm also daran erkennen, ob der Grauwert-Bereich mit hohen Pixelzahlen eher links oder eher rechts im Histogramm liegt.
Als Nächstes vergleichen wir die Histogramme von Bildern mit unterschiedlichem Kontrast. Dazu betrachten wir zunächst ein Bild mit hohem Kontrast, also eines in dem Pixel mit stark unterschiedlichen Graustufen häufig vorkommen.
Bild mit hohem Kontrast | Histogramm des Bildes mit hohem Kontrast |
---|---|
Das Histogramm dieses Bildes ist mittig ausgerichtet, das Bild hat also eine mittlere Helligkeit.
Um zu erkennen, wie wir anhand des Histogramms auf den Kontrast schließen können, vergleichen wir es mit dem Histogramm eines Bildes mit niedrigerem Kontrast.
Bild mit niedrigem Kontrast | Histogramm des Bildes mit niedrigem Kontrast |
---|---|
In diesem Bild kommen weniger unterschiedliche Pixel häufig vor. Im Histogramm ist der Grauwertbereich mit hoher Pixelzahl wieder mittig ausgerichtet, nun allerdings schmaler als im Bild mit hohem Kontrast.
Den Kontrast eines Bildes erkennen wir an seinem Histogramm also daran, ob sich die Grauwerte mit hoher Pixelzahl in einem schmalen Bereich konzentrieren oder weit über das Histogramm verteilt sind.
Der Dialog Tools > Color Tools > Curves
zeigt nicht nur ein
Histogramm an, sondern erlaubt es auch, das Bild mit Hilfe sogenannter
Kurven zu manipulieren. Diese Kurven bilden Grauwerte auf neue
Grauwerte ab. Obwohl sie im selben Koordinatensystem angezeigt werden
wie das Histogramm, sind sie keine Funktionen von Grauwerten in
Pixelzahlen sondern von Grauwerten in Grauwerte. Die y-Achse ist
für die Kurven also wie die x-Achse von 0 bis 255 beschriftet.
Die einfachsten Kurven sind Geraden und wir untersuchen im Folgenden, wie wir mit Geraden die Helligkeit und den Kontrast von Bildern manipulieren können.
Die einfachste Möglichkeit, um die Helligkeit eines Bildes zu beeinflussen, ist, zu jedem Grauwert eine Konstante zu addieren (oder zu subtrahieren). Dies entspricht einer Verschiebung der Einheitsgeraden nach oben (oder unten), wobei sie am Rand abgeschnitten wird, um im Zielbereich der Farbwerte zu bleiben. Diese Methode, ein Bild heller zu machen, führt also bei bereits hellen Bildern zu einer künstlichen Überbelichtung. Analog führt das Verdunkeln eines bereits dunklen Bildes zu künstlicher Unterbelichtung.
Das Histogramm wird mit dieser Methode nach rechts (oder links) verschoben, da die Pixelanzahlen gleich bleiben und nur anderen Grauwerten zugeordnet werden. Dabei kann der Grauwert-Bereich mit hohen Pixelanzahlen gegen den rechten (oder linken) Rand des Histogramms gedrückt werden, wodurch die künstliche Über- (oder Unter-)belichtung sichtbar wird.
Um diesen Effekt zu vermeiden, kann man beim Aufhellen eines Bildes
dunkle Pixel stärker verändern als helle und beim Verdunkeln helle
stärker als dunkle. Diese Methode aum Aufhellen kann durch eine Gerade
umgesetzt werden, die durch den Punkt (255, 255)
und ansonsten
oberhalb der Identitätsgeraden verläuft. Analog erreicht man
Verdunklung mit einer Geraden durch den Nullpunkt, die unterhalb der
Identitätsgeraden verläuft.
Diese Methode verringert den Kontrast eines Bildes, da beim Aufhellen
dunkle Grauwerte komplett entfernt werden. Ebenso kommen nach dem
Verdunkeln ganz helle Grauwerte im Bild nicht mehr vor. Um diesen
Effekt zu vermeiden, muss man Kurven verwenden, die sowohl durch den
Nullpunkt als auch durch (255, 255)
aber ansonsten oberhalb (oder
unterhalb) der Identitätsgeraden verlaufen.
Um den Kontrast eines Bildes zu verändern brauchen wir Kurven, die
sowohl oberhalb als auch unterhalb der Identitätsgeraden verlaufen.
Zum Beispiel erhöht sich der Kontrast, indem dunkle Pixel dunkler und
helle Pixel heller gemacht werden. Der Kontrast verringert sich hingegen,
wenn dunkle Pixel heller und helle dunkler werden. Dies erreichen wir
zum Beispiel durch eine Gerade durch den Punkt (128, 128)
mit
gegenüber der Identitätsgeraden erhöhter (bzw. erniedrigter) Steigung.
Im Histogramm äußert sich eine Erhöhung des Kontrasts dadurch, dass der Grauwert-Bereich mit hohen Pixelzahlen auseinandergezogen wird. Dabei kann er gegen den rechten und/oder linken Rand des Histogramms gedrückt werden, was zu künstlicher Über- und/oder Unterbelichtung führt. Dieser Effekt lässt sich vermeiden, indem Kurven gewählt werden, die durch die Eckpunkte gehen und ansonsten sowohl unter- als auch oberhalb der Identitätsgeraden verlaufen.