HLS色空間

HLS空間:HSVとの違いとRGB変換の詳細



HLS[色]]空間(Hue, Lightness, Saturation)は、相(Hue)、輝度][彩度]の3つの成分で表現するモデルです。HSV[[色空間とよく似た性質を持ちますが、輝度彩度の定義において重要な違いがあります。そのため、HSVとHLSを混同しないように注意が必要です。HSLやHSIと呼ばれることもあります。

相(Hue)



相はの種類を表し、0°から360°の範囲で表現されます。0°がで、180°がの反対であるとなります。相環上で反対の位置にあるは補関係にあり、容易に特定できます。この点においてはHSV空間と同じです。

[彩度]



彩度の鮮やかさを表します。HLS空間における彩度は、純からどれだけ灰色に近づくかによって定義されます。HSVとは異なり、彩度が低いほど灰色に近づきます。

[輝度]



輝度の明るさを表します。HLS空間では、輝度0%が、100%が、50%が純と定義されています。これはHSVと大きく異なります。HSVでは、輝度100%が純で、輝度が低くなるほどに近づきます。HLSの輝度を理解する一つの方法は、50%を境に、50%以下はHSVの明度、50%以上はHSVの彩度と考えることです。

代表的なアプリケーション



HLS空間は、Microsoft Windows(ペイントを含む)、CSS3、Paint Shop Pro、Inkscapeなど、様々なアプリケーションで利用されています。

RGBからHLSへの変換



RGBからHLSへの変換は、以下の数式を用いて行います。ただし、双円錐モデルと円柱モデルがあり、彩度の計算方法が異なります。

双円錐モデル

相Hの計算:


H = {
undefined, if MIN = MAX
60 × (G - R) / (MAX - MIN) + 60, if MIN = B
60 × (B - G) / (MAX - MIN) + 180, if MIN = R
60 × (R - B) / (MAX - MIN) + 300, if MIN = G
}
L = (MAX + MIN) / 2
S = MAX - MIN


円柱モデル

相Hの計算は双円錐モデルと同じです。

彩度Sの計算:


S = (MAX - MIN) / (1 - |MAX + MIN - 1|)


ここで、MAXはR, G, Bの最大値、MINは最小値です。

HLSからRGBへの変換



HLSからRGBへの変換は、まず最大値Maxと最小値Minを求める必要があります。

円柱モデルからの変換


Max = L + S × (1 - |2 × L - 1|) / 2
Min = L - S × (1 - |2 × L - 1|) / 2


双円錐モデルからの変換


Max = L + S / 2
Min = L - S / 2


次に、相Hの値に基づいて、以下の式を用いてRGBの各チャンネルの値を計算します。


(R, G, B) = {
(Min, Min, Min), if H is undefined
(Max, Min + (Max - Min) × H / 60, Min), if 0 ≤ H < 60
(Min + (Max - Min) × (120 - H) / 60, Max, Min), if 60 ≤ H < 120
(Min, Max, Min + (Max - Min) × (H - 120) / 60), if 120 ≤ H < 180
(Min, Min + (Max - Min) × (240 - H) / 60, Max), if 180 ≤ H < 240
(Min + (Max - Min) × (H - 240) / 60, Min, Max), if 240 ≤ H < 300
(Max, Min, Min + (Max - Min) × (360 - H) / 60), if 300 ≤ H < 360
}


相が定義されない場合(Hがundefinedの場合)、彩度は0となり、R, G, Bの値は全て輝度Lに等しくなります。これは、完全に灰色であることを示しています。

これらの変換式を用いることで、RGB空間とHLS空間の間で相互変換を行うことができます。ただし、変換式はモデルによって異なるため注意が必要です。

もう一度検索

【記事の利用について】

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

【リンクついて】

リンクフリーです。