HSV色空間

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色空間との相互変換も容易に行うことができ、色の表現や操作において重要な役割を果たしています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。