Digital Signal Processing Reference
In-Depth Information
12 Farbbilder
static float[] HLStoRGB (float H, float L, float S) {
1
// H,L,S assumed to be in [0,1]
Programm 12.9
HLS-RGB Konvertie-
rung (Java-Methode).
2
float R = 0, G = 0, B = 0;
3
4
5
// black
if (L <= 0)
R=G=B=0;
6
// white
else if (L >= 1)
7
R=G=B=1;
8
else {
9
float hh = (6 * H) % 6;
10
int
c1 = (int) hh;
11
float c2 = hh - c1;
12
float d = (L <= 0.5f) ? (S * L) : (S * (1 - L));
13
float w = L + d;
14
float x = L - d;
15
float y = w - (w - x) * c2;
16
float z = x + (w - x) * c2;
17
switch (c1) {
18
case 0: R=w; G=z; B=x; break;
19
case 1: R=y; G=w; B=x; break;
20
case 2: R=x; G=w; B=z; break;
21
case 3: R=x; G=y; B=w; break;
22
case 4: R=z; G=x; B=w; break;
23
case 5: R=w; G=x; B=y; break;
24
}
25
}
26
return new float[] {R,G,B};
27
}
28
feinere Abstufungen bei der Farbauswahl im HLS-Raum, insbesondere
bei Farbwerten, die in der oberen Halfte des HLS-Zylinders liegen.
Beide Farbraume - HSV und HLS - werden in der Praxis haufig
verwendet, z. B. fur die Farbauswahl bei Bildbearbeitungs- und Grafik-
programmen. In der digitalen Bildverarbeitung ist vor allem auch die
Moglichkeit interessant, durch Isolierung der Hue -Komponente Objekte
aus einem homogen gefarbten (aber nicht notwendigerweise gleichmaßig
hellen) Hintergrund automatisch freizustellen (auch als Color Keying
bezeichnet). Dabei ist naturlich zu beachten, dass mit abnehmendem
Sattigungswert ( S ) auch der Farbwinkel ( H ) schlechter bestimmt bzw.
bei S =0uberhaupt undefiniert ist. In solchen Anwendungen sollte
daher neben dem H -Wert auch der S -Wert in geeigneter Form beruck-
sichtigt werden.
12.2.4 TV-Komponentenfarbraume - YUV, YIQ und YC b C r
Diese Farbraume dienen zur standardisierten Aufnahme, Speicherung,
Ubertragung und Wiedergabe im TV-Bereich und sind in entsprechen-
den Normen definiert. YUV und YIQ sind die Grundlage der Farbkodie-
Search WWH ::




Custom Search