Digital Signal Processing Reference
In-Depth Information
Alle drei Komponenten H HSV ,S HSV ,V HSV liegen damit im Intervall
[0 , 1]. Der Wert des Farbtons H HSV ist bei Bedarf naturlich einfach in
ein anderes Winkelintervall umzurechnen, z. B. in das 0 ... 360 -Intervall
durch H HSV
12.2 Farbr aume und
Farbkonversion
360.
Durch diese Definition wird der Einheitswurfel im RGB-Raum auf
einen Zylinder mit Hohe und Radius der Lange 1 abgebildet (Abb.
12.12). Im Unterschied zur traditionellen Darstellung in Abb. 12.11 sind
alle HSB-Punkte innerhalb des gesamten Zylinders auch zulassige Farb-
punkte im RGB-Raum. Die Abbildung vom RGB- in den HSV-Raum ist
nichtlinear, wobei sich interessanterweise der Schwarzpunkt auf die ge-
samte Grundflache des Zylinders ausdehnt. Abbildung 12.12 beschreibt
auch die Lage einiger markanter Farbpunkte im Vergleich zum RGB-
Raum (siehe auch Abb. 12.1). In Abb. 12.13 sind fur das Testbild aus
Abb. 12.2 die einzelnen HSV-Komponenten als Grauwertbilder darge-
stellt.
H HSV ·
Abbildung 12.12
HSV-Farbraum. Die Grafik zeigt den
HSV-Farbraum als Zylinder mit den
Koordinaten H ( hue )alsWinkel,
S ( saturation ) als Radius und V
( brightness value )alsDistanzent-
lang der vertikalen Achse, die zwi-
schen dem Schwarzpunkt S und dem
Weißpunkt W verlauft. Die Tabelle
listet die ( R, G, B )- und ( H, S, V )-
Werte der in der Grafik markierten
Farbpunkte auf. Reine“ Farben (zu-
sammengesetzt aus nur einer oder
zwei Farbkomponenten) liegen an der
Außenwand des Zylinders ( S =1),
wie das Beispiel der graduell gesattig-
ten Rotpunkte ( R 25 , R 50 , R 75 , R )
zeigt.
RGB-/HSV-Werte
Pkt. Farbe R G B H S V
S Schwarz 0.00 0.00 0.00 — 0.00 0.00
R Rot 1.00 0.00 0.00 0 1.00 1.00
Y Gelb 1.00 1.00 0.00 1 / 6 1.00 1.00
G Grun 0.00 1.00 0.00 2 / 6 1.00 1.00
C Cyan 0.00 1.00 1.00 3 / 6 1.00 1.00
B Blau 0.00 0.00 1.00 4 / 6 1.00 1.00
M Magenta 1.00 0.00 1.00 5 / 6 1.00 1.00
W Weiß
V
G
Y
P
W
C
R
B M
R 75
R 50
R 25
1.00 1.00 1.00
— 0.00 1.00
R 75
75% Rot 0.75 0.00 0.00
0
1.00 0.75
H
S
R 50
50% Rot 0.50 0.00 0.00
0
1.00 0.50
S
R 25
25% Rot 0.25 0.00 0.00
0
1.00 0.25
P
Pink
1.00 0.50 0.50
0
0.5 1.00
Java-Implementierung
In Java ist die RGB-HSV-Konvertierung in der Klasse java.awt.Color
durch die Klassenmethode
float[] RGBtoHSB (int r , int g , int b , float[] hsv )
implementiert (HSV und HSB bezeichnen denselben Farbraum). Die
Methode erzeugt aus den int -Argumenten r , g , b (jeweils im Bereich
[0 ... 255]) ein float -Array mit den Ergebnissen fur H, S, V im Intervall
[0 , 1]. Falls das Argument hsv ein float -Array ist, werden die Ergeb-
niswerte darin abgelegt, ansonsten (wenn hsv = null ) wird ein neues
Array erzeugt. Hier ein einfaches Anwendungsbeispiel:
Search WWH ::




Custom Search