HSL色空間とHSV色空間
CSS3の仕様では、開発者が色の指定にHSLの値をそのまま利用できる。
HSLとHSVは、地図や医療画像などにおいて、データ可視化のためのグラデーションを定義するために利用されることがある。例えば、GISプログラムであるArcGISは、カスタマイズ可能なHSVベースのグラデーションを地理データに適用している。
画像編集ソフトには、HSLやHSV、あるいはIntensityやLumaに基づくモデルを利用して色を調整する機能をもつものがある。特に、色相と彩度のスライダーをもつツールは、少なくとも1980年代後半から一般的になっているが、より複雑なツールも様々に実装されている。
動画編集ソフトでも、これらのモデルは用いられる。例えば、Avidや Final Cut Pro には、HSLまたは類似のモデルに基づく色編集ツールがあり、動画の色の補正に使用できる。
H = 60 ∘ × H ′ {\displaystyle H=60^{\circ }\!\times H^{\prime }}
便宜上、無彩色のHueを0度とすることもある。
これらの定義から、六角形の各辺を60度の円弧にマッピングすることで、六角形を円に変換することができる。このような変換を行うと、Hueは原点周りの角度、Chromaは原点からの距離、すなわちある色の位置ベクトルが赤の位置ベクトルに対してなす角と、そのベクトルの大きさでそれぞれ正確に表せる。
画像解析ソフトでは、上述のような変形の代わりに、HueとChroma(それぞれ H2, C2 とおく)を直交座標の極座標変換によって定義することがある(図10)。これは、 αβ 座標を用いて次のように行うことができる。
α = R − G ⋅ cos  ( 60 ∘ ) − B ⋅ cos  ( 60 ∘ ) = 1 2 ( 2 R − G − B ) {\displaystyle \alpha =R-G\!\cdot \!\cos(60^{\circ })-B\!\cdot \!\cos(60^{\circ })={\frac {1}{2}}(2R\!-\!G\!-\!B)}
β = G ⋅ sin  ( 60 ∘ ) − B ⋅ sin  ( 60 ∘ ) = 3 2 ( G − B ) {\displaystyle \beta =G\!\cdot \!\sin(60^{\circ })-B\!\cdot \!\sin(60^{\circ })={\frac {\sqrt {3}}{2}}(G-B)}
ある領域の、その領域自体のBrightness(明るさ)に対して感じられる相対的なColorfulness(鮮やかさ)。
Lightness(明度)とChroma(クロマ)がある白色の領域を基準として相対的に定められる指標であるのに対し、Brightness(明るさ)とColorfulness(鮮やかさ)は、通常、目に到達する光のスペクトル分布などの物理的特性を表す絶対的な指標である。周囲の照明の変化によってBrightness(明るさ)とColorfulness(鮮やかさ)は変化するのに対し、Lightness(明度・白さ)とChroma(クロマ)はあまり変動しないため、物体表面の色の表現には後者がしばしば用いられる。Saturation(彩度・飽和度)は、Brightness(明るさ)に対するColorfulness(鮮やかさ)の比、あるいはLightness(明度)に対するChroma(クロマ)の比のどちらとしても定義されうる。
これ以降、特に明記されない限り、Hue、Saturationなどの単語はこれらの学術的な用語とは異なるものとする。
Hueを H ∈ [0°, 360°) 、Saturationを SV ∈ [0, 1] 、Valueを V ∈ [0, 1] とし、まず次の関数 f(n) を定義する。
f ( n ) = V − V S ⋅ max ( 0 , min ( k , 4 − k , 1 ) ) {\displaystyle f(n)=V-VS\!\cdot \!\max \!{\big (}0,~\min(k,~4\!-\!k,~1){\big )}}
ただし、 k, n はともに0以上の実数であり、 k は次のように定義される。
k = ( n + H 60 ∘ ) mod 6 {\displaystyle k={\Big (}n+{\frac {H}{60^{\circ }\!}}{\Big )}{\bmod {6}}}
ここで、 k ∈ [0, 6) となる。
これらのもとで、R, G, B の値(それぞれ0以上1以下)が次のように得られる。
( R , G , B ) = ( f ( 5 ) , f ( 3 ) , f ( 1 ) ) {\displaystyle (R,G,B)={\big (}f(5),~f(3),~f(1){\big )}}
f(n) の特性は、 t ( n , H ) = T ( k ) = max ( 0 , min ( k , 4 − k , 1 ) ) {\textstyle t(n,H)=T(k)=\max \!{\big (}0,~\min(k,~4\!-\!k,~1){\big )}} として、HSLの場合と同様にして考察できる。
Hueを H ∈ [0°, 360°) 、Saturationを SV ∈ [0, 1] 、Valueを V ∈ [0, 1] とする。
H L = H V {\displaystyle H_{L}=H_{V}}
L = V ( 1 − S V 2 ) {\displaystyle L=V{\bigg (}1-{\frac {S_{V}}{2}}{\bigg )}}
S L = { 0 , if L = 1 or L = 0 V − L min ( L , 1 − L ) , otherwise {\displaystyle S_{L}={\begin{cases}0,&{\text{if}}~~L\!=\!1~~{\text{or}}~~L\!=\!0\\{\frac {V-L}{\min(L,~1-L)}},&{\text{otherwise}}\end{cases}}}
HSL色空間において、純色は Lightness 50% の円周上の色であり、完全な黒と白はそれぞれ Lightness 0% と Lightness 100% の部分である。
一方、HSV色空間による色の表現方法は、光の下での色の見え方に近い。HSL色空間でLightnessが最大の色は「白」であるが、HSV色空間でValueが最大の色は、純色の物体に白色光を当てたときの色であるといえる。例えば、赤い物体に明るい白色光を当てると物体は「赤く」見え、白色光を暗くしていくと、物体は黒色に近づいて見える、ということに似ている。
これらの色空間では、3つの色成分が人間の色に対する知覚特性に十分には従っていないことが問題として指摘されることがある。これは、Lightness・Valueを固定してHueを変化させると顕著である。例えば、純色の青 と純色の黄色 は、HSLではともに Lightness 50% 、HSVではともに Value 100% であるが、青よりも黄色のほうがはるかに明るく感じられる。
ある領域が、多かれ少なかれ光を発しているように見えるということに関する視覚的属性。
HSL色空間は、1938年にフランスの技術者ジョルジュ・ヴァレンシによって、白黒の(輝度信号のみを放送する)テレビジョン放送に色の情報を付加する方法として開発された。このような方法はNTSC、PAL、SECAMなど主要なアナログテレビ放送やデジタルテレビ放送で使用されており、コンポジット映像信号の基礎となっている。
テレビ、パソコン、プロジェクターの多くは、赤、緑、青の3色の光を、強さを変えながら組み合わせることで色を表現する(加法混色)。しかし、十分に経験のない者や、絵具による混色(減法混色)に基づく色の表現に慣れている者は、この方法では容易には色を表現できない。より直感的な混色に対応するため、1970年代半ば、パロアルト研究所とニューヨーク工科大学の研究者らは、コンピューターのディスプレイ技術にHSV色空間を導入し、これはその後1978年8月の Computer Graphics 誌で、アルヴィ・レイ・スミスによって正式に記述された。
翌1979年には、テクトロニクスが色の指定にHSLを用いたグラフィックス端末をSIGGRAPHで発表した。HSLはRGBよりも直感的であるという点だけでなく、RGBとの変換が高速で可能であり、1970年代のコンピューターでもリアルタイムで相互に変換可能であった点でも便利であった。
以上の背景から、HSLや類似の色空間は、後述のように画像編集やグラフィックソフトウェアで広く使用されるようになった。
ガンマ補正された R', G', B' 値の加重和で、Y'CbCrでのJPEGファイルの圧縮や映像信号処理に利用される。