Digital Signal Processing Reference
In-Depth Information
und anschließend ein sRGB-Farbwert ( R ,B ,G ) in die entsprechenden
Farbkoordinaten ( X, Y, Z ) im CIEXYZ-Farbraum konvertiert: 19
12.3 Colorimetrische
Farbr aume
1 ColorSpace sRGBsp
2 = ColorSpace.getInstance(ColorSpace.CS_sRGB);
3 float[] pink_RGB = new float[] {1.0f, 0.5f, 0.5f};
4 float[] pink_XYZ = sRGBsp.toCIEXYZ(pink_RGB);
Neben dem Standardfarbraum sRGB stehen durch die im obigen Bei-
spiel verwendete Methode ColorSpace.getInstance() folgende wei-
tere Farbraume zur Verfugung: CIEXYZ ( CS CIEXYZ ), lineare RGB-
Grauwerte ohne Gammakorrektur ( CS LINEAR RGB ), 8-Bit-Grauwerte
( CS GRAY ) und der YCC-Farbraum von Kodak ( CS PYCC ).
Zusatzliche Farbraume konnen durch Erweiterung der Klasse Color-
Space definiert werden, wie anhand der Realisierung des L a b -Farb-
raums durch die Klasse Lab ColorSpace in Prog. 12.10-12.11 gezeigt ist.
Die Konvertierungsmethoden entsprechen der Beschreibung in Abschn.
12.3.2. Die abstrakte Klasse ColorSpace erfordert neben den Methoden
fromCIEXYZ() und toCIEXYZ() auch die Implementierung der Konver-
tierungen in den sRGB-Farbraum in Form der Methoden fromRGB()
bzw. toRGB() . Diese Konvertierungen werden durch Umrechnung uber
CIEXYZ durchgefuhrt (Prog. 12.11). 20 Folgendes Beispiel zeigt die Ver-
wendung der so konstruierten Klasse Lab ColorSpace :
1 ColorSpace LABcs = new Lab_ColorSpace();
2 float[] pink_XYZ1 = {0.5276f, 0.3811f, 0.2483f};
3 // XYZ → LAB:
4 float[] pink_LAB1 = LABcs.fromCIEXYZ(pink_XYZ);
5 // LAB → XYZ:
6 float[] pink_XYZ2 = LABcs.toCIEXYZ(pink_XYZ);
ICC-Profile
Auch bei genauester Spezifikation reichen Farbraume zur prazisen Be-
schreibung des Abbildungsverhaltens konkreter Aufnahme- und Wieder-
gabegerate nicht aus. ICC 21 -Profile sind standardisierte Beschreibungen
dieses Abbildungsverhaltens und ermoglichen, dass ein zugehoriges Bild
spater von anderen Geraten exakt reproduziert werden kann. Profile sind
damit ein wichtiges Instrument im Rahmen des digitalen Farbmanage-
ments [86].
19 Seltsamerweise sind die Ergebnisse der Java-Standardmethoden toCIEXYZ()
und fromCIEXYZ() in den aktuellen API-Versionen zueinander nicht invers.
Hier liegt ein (seit langerem bekannter) Java-Bug vor.
20 Dabei muss der Bezug auf den richtigen Weißpunkt (D50 bzw. D65) beachtet
werden.
21 International Color Consortium ICC (www.color.org).
Search WWH ::




Custom Search