next up previous
Nächste Seite: Bildklasse Aufwärts: Bildquelle und Bildklasse Vorherige Seite: Bildquelle und Bildklasse

Farbräume

Es gibt viele verschiedene Arten die sichtbaren Farben zu kodieren. In der Bilderkennung häufig auftretende Farbräume sind der RGB und der YUV Raum. Interessant ist auch noch der HSV bzw. HSI Raum [2], [21].

Im RGB Raum werden die Farben additiv durch ein Tripel der drei Grundfarben Rot, Grün und Blau kodiert. Dieses Farbformat eignet sich besonders zur Ansteuerung einer dreifarbigen Phosphorschicht mit roten, grünen und blauen Phosphorpunkten. Daher ist RGB das am häufigsten im Computer verwendete Format zur Bildanzeige. Nahezu jedes Fenster-System bietet entsprechende Bildklassen an. Viele Kameras liefern in diesem Raum kodierte Farbinformationen. Im Einheitswürfel des RGB - Raums befinden sich die Helligkeitsstufen einer Farbe auf einer zum Vektor $(1,1,1)$ Parallelen. Die Helligkeit ergibt sich also aus der Summe der Werte der drei Grundfarben.

Im YUV-Raum wird ein Farbwert durch ein YUV-Tripel beschrieben, wobei Y die Helligkeit (Luminanz) angibt und U und V Farbdifferenzen (Chrominanz) bezeichnen. Der Helligkeitswert versucht das Empfinden des Menschen nachzubilden und resultiert zu 59% aus dem Grün-, zu 30% aus dem Rot- und zu 11% aus dem Blauanteil. Die beiden anderen Werte kodieren die Farbinformation als Differenzen des Rot-, Grün- und Blauanteils. Da die Helligkeit in einer eigenen Komponente abgelegt wird, befinden sich die Helligkeitsstufen einer Farbe im Einheitswürfel auf einer zur Y-Achse Parallelen. Diese getrennte Kodierung von Farbe und Helligkeit wird bei der Farbsegmentierung, wo gleiche oder ähnliche Farben eine Region bilden, oft als Vorteil angesehen (siehe Abschnitt 2.3).

Der HSI-Raum (Hue, Saturation, Intensity) kodiert den Farbton in einer einzigen Komponente. Hierbei wird die Farbe als Winkel in dem durch Projektion des RGB-Raums an der Weiß-Schwarz-Diagonalen entstandenen Sechsecks angegeben. Die Sättigung gibt die Reinheit der Farbe an. Wird die Sättigung einer gewählten Farbe verringert, entspricht dies einer Abtönung mit weiß. Wird hingegen die Intensität verringert, entspricht dies einer Verdunkelung durch Hinzufügen von Schwarz. Interessant an diesem Farbraum ist die Kodierung der Farbe in nur einem Wert, getrennt von Intensität und Reinheit. Ein Problem ist aber die Tatsache, daß die Zwischenfarben zweier vorgegebener Farben im Gegensatz zu den anderen beiden Farbräumen nicht durch Interpolation gefunden werden können.

Während Farben vom RGB-Raum durch eine einfache Lineartransformation in das YUV-Format hin und zurück transformiert werden können, ist die Umwandlung dieser Werte in den HSI Raum ungleich schwerer [21]. Da die meisten Kameras RGB-Werte liefern können und dies das übliche Anzeigeformat ist, fiel die Entscheidung hier zu Gunsten des RGB-Farbraum. Schließlich gilt es aus Perfomancegründen, auch einfache Transformationen auf ein Minimum zu reduzieren. Falls sich später der YUV- oder ein anderer, ähnlicher Raum als geeigneter erweisen sollte, ist dieser durch eine Transformation in einer Zwischenschicht berechenbar. Der HSI Raum kommt aufgrund der komplexen Transformation und der Tatsache, daß er von kaum einer Hardware geliefert werden kann, nicht in Frage.

Im Echtfarbmodus des PC's ist es üblich, RGB-Tripel in drei Bytes und mit Werten von 0 bis 255 pro Grundfarbe zu kodieren. Man spricht hier von einer Farbtiefe von 24 Bit. Manche Hardware ordnet die einzelnen Pixel aber aufgrund besserer Zugriffszeiten durch die 32 Bit breite Architektur des Speichers an den 32 Bit Grenzen an, so daß ein Byte, zumeist das letzte, ungenutzt bleibt. Ein solcher Modus wird dann als 32bpp (Bit per Pixel) bei einer Farbtiefe von 24 Bit bezeichnet. In dieser Bibliothek werden 24 Bit ``breite'' Strukturen zur Kodierung der RGB-Werte verwendet:

typedef struct {
  unsigned char r, g, b;
} RGBValue;


next up previous
Nächste Seite: Bildklasse Aufwärts: Bildquelle und Bildklasse Vorherige Seite: Bildquelle und Bildklasse

2001-12-05