HSV色空間:直感的な色の表現
HSV
色空間は、
色相(Hue)、
彩度(Saturation)、
明度(Value)の3つのパラメータで
色を表現するモデルです。HSBモデル(Hue, Saturation, Brightness)とも呼ばれ、
HLS色空間と類似していますが、
明度の定義に違いがあります。HSVは
1978年にAlvy Ray Smithによって考案され、
RGB色空間の非線形変換として、
色の表現や変換に用いられています。
色相 (Hue): 色の種類を表します。赤、青、緑など、色の名前で表現される要素です。0°~360°の範囲で表され、アプリケーションによっては0~100%に正規化されることもあります。
彩度 (Saturation): 色の鮮やかさを表します。0~100%の範囲で、0%は
灰色、100%は最も鮮やかな
色となります。
彩度が低いほど、
灰色がかってくすんだ
色になります。
明度 (Value): 色の明るさを表します。0~100%の範囲で、0%は黒、100%は最も明るい色となります。
HSVの視覚化
HSV色空間は、様々な方法で視覚化できます。
色環と三角形: 色相を円状の
色環で、
彩度と
明度を
三角形で表現する方法が一般的です。
色環で
色相を選び、
三角形で
彩度と
明度を調整するインターフェースがよく用いられます。
円錐モデル: 色相を円錐の側面に、彩度を円錐の中心からの距離に、明度を頂点からの距離にそれぞれ対応させる視覚化です。HSV色空間全体を一つの図形で表現できる利点があります。六角錐で表現される場合もあります。
円柱モデル: 色相を円柱の外周に、
彩度を中心からの距離に、
明度を高さにそれぞれ対応させる視覚化です。数学的には厳密なモデルとされていますが、
黒に近い部分では
彩度や
色相の精度が低くなる欠点があります。
コンピュータグラフィックスアプリケーションでは、直感的な
色選択のため、円環と
三角形による視覚化が広く採用されています。
HSVと人間の色の知覚
HSVモデルは、人間の
色の
知覚と比較的近いため、
グラフィックデザイナーは
RGBや
CMYKモデルよりもHSVモデルを好んで使用することがあります。
RGBや
CMYKは、加法混合や減法混合に基づいたモデルであり、
原色の組み合わせで
色が定義されます。一方、HSVは「どんな
色か」「どのくらい鮮やかか」「どのくらい明るいのか」といった、人間にとってより理解しやすい
情報で
色を表現します。
HLS色空間も同様の利点を持っています。
ただし、HSVは物理的な光のスペクトルとは一対一の対応関係を持たないため、HSV座標から光の
波長や振幅といった物理量を直接求めることはできません。
RGBとHSVの変換
RGB色空間とHSV
色空間の間には、相互に変換する数式が存在します。以下に変換式を示します。なお、R、G、Bは0.0~1.0の範囲の値で表現するものとします。
RGBからHSVへの変換
`MAX`をR、G、Bの最大値、`MIN`を最小値とすると、
H =
if MIN = MAX then undefined
else if MIN = B then 60 × (G - R) / (MAX - MIN) + 60
else if MIN = R then 60 × (B - G) / (MAX - MIN) + 180
else if MIN = G then 60 × (R - B) / (MAX - MIN) + 300
V = MAX
円錐モデルの場合:`S = MAX - MIN`
円柱モデルの場合:`S = (MAX - MIN) / MAX`
HSVからRGBへの変換
Hが0.0~360.0、SとVが0.0~1.0の範囲の値で与えられているとします。Sが0.0ならR=G=B=Vとなり、Hは無意味になります。
円柱モデルの場合:`C = V × S`
円錐モデルの場合:`C = S`
`H' = H / 60` とし、以下の式を用いてR、G、Bを求めます。
X = C × (1 - |H' mod 2 - 1|)
(R, G, B) = (V - C)(1, 1, 1) +
if H is undefined then (0, 0, 0)
else if 0 ≤ H' < 1 then (C, X, 0)
else if 1 ≤ H' < 2 then (X, C, 0)
else if 2 ≤ H' < 3 then (0, C, X)
else if 3 ≤ H' < 4 then (0, X, C)
else if 4 ≤ H' < 5 then (X, 0, C)
else if 5 ≤ H' < 6 then (C, 0, X)
これらの式を用いることで、
RGBとHSVの相互変換が可能です。ソフトウェアでは、これらの式を基にした変換関数が提供されています。
まとめ
HSV
色空間は、
色相、
彩度、
明度という直感的なパラメータで
色を表現するモデルであり、コンピュータグラフィックスなど様々な分野で利用されています。
RGB色空間との相互変換も容易に行うことができ、
色の表現や操作において重要な役割を果たしています。