Digital Signal Processing Reference
In-Depth Information
12 Farbbilder
1 import java.awt.Color;
2 ...
3 float[] hsv = new float[3];
4 int red = 128, green = 255, blue = 0;
5 hsv = Color.RGBtoHSB (red, green, blue, hsv);
6 float h = hsv[0];
7 float s = hsv[1];
8 float v = hsv[2];
9 ...
Eine mogliche Realisierung der Java-Methode RGBtoHSB() unter Ver-
wendung der Definitionen in Gl. 12.11-12.15 ist in Prog. 12.6 gezeigt.
HSV
RGB
Zur Umrechnung eines HSV-Tupels ( H HSV ,S HSV ,V HSV ), wobei H HSV ,
S HSV und V HSV
[0 , 1], in entsprechende ( R, G, B )-Farbwerte wird
zunachst wiederum der zugehorige Farbsektor
H =(6
·
H HSV ) mod 6
(12.16)
H < 6) und daraus die Zwischenwerte
ermittelt (0
H
c 1 =
x =(1
S HSV )
·
v
c 2 = H
c 1
y =(1
( S HSV ·
c 2 ))
·
V HSV
(12.17)
z =(1
( S HSV ·
(1
c 2 )))
·
V HSV
Die normalisierten RGB-Werte R ,G ,B
[0 , 1] werden dann in Ab-
hangigkeit von c 1 aus v = V HSV , x , y und z wie folgt zugeordnet: 9
( v, z, x )w n c 1 =0
( y, v, x )w n c 1 =1
( x, v, z )w n c 1 =2
( x, y, v )w n c 1 =3
( z, x, v )w n c 1 =4
( v, x, y )w n c 1 =5
( R ,G ,B )
(12.18)
Die Skalierung der RGB-Komponenten auf einen ganzzahligen Wertebe-
reich [0 ,N
1] (typischerweise N = 256) erfolgt abschließend durch
min round( N
1
R ) ,N
R
·
min round( N
1
G ) ,N
G
·
(12.19)
min round( N
1
B ) ,N
B
·
9 Die hier verwendeten Bezeichnungen x , y , z stehen in keinem Zusammen-
hang zum CIEXYZ-Farbraum (Abschn. 12.3.1).
Search WWH ::




Custom Search