このキーワード
友達に教える
URLをコピー

HSV色空間とは?

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。
出典を追加して記事の信頼性向上にご協力ください。(2019年1月)

HSVモデル(: HSV model)は色相(Hue)、彩度(Saturation・Chroma)、明度(Value・Lightness・Brightness)の三つの成分からなる色空間HSL色空間(Hue、Saturation、Lightness)とも、HSB色空間(Hue、Saturation、Brightness)とも言われる。

環状のHSV色空間

HSVは1978年にアルヴィ・レイ・スミス(Alvy Ray Smith)によって考案された。これはRGB色空間の非線形変換であり、色の変換に用いられることもある。HSVとHSBは同一であるがHLSとは異なる。

目次

  • 1 HSVの視覚化
  • 2 HSVと色覚
  • 3 RGBからHSVへの変換
    • 3.1 ソフトウェアでの変換処理
  • 4 HSVからRGBへの変換
    • 4.1 ソフトウェアでの変換処理
  • 5 関連項目

HSVの視覚化

HSVモデルは通例コンピュータグラフィックスアプリケーションに用いられる。いろいろなアプリケーションでユーザは個々のグラフィックス要素に適用する色を選択する必要がある。このような場合、HSV色環がよく用いられる。これは状の領域に色相が表現されたもので、それとは別に三角形の領域が彩度と明度の表現に用いられることがある。上図における三角形の水平軸は明度を指示し、また垂直軸は彩度に対応する。このような形式のインターフェースでは、最初の操作で環状の領域から色相を選択し、続いて三角形の領域から所望の彩度と明度を選択する。

HSV色空間の円錐
HSV色空間の円柱

HSVモデルの別の視覚化方法は円錐である。この表現では、色相は色環の三次元円錐状の構造に描かれる。彩度はその円錐の中心からの距離、明度は円錐の頂点からの距離で表される。円錐ではなく六角形の錐体(六角錐)で表現するものもある。この方法は単一の物体でHSV色空間全体を視覚化するのに適している。三次元形状のため二次元のコンピュータインターフェイスにおける色の選択に利用するのは難しい。

HSV色空間は円柱状の物体として視覚化されることもある。上記と同様に色相は円柱の外周に沿って変化し、彩度は中心からの距離に伴って変化する。明度も頂点から底へ向かって変化する。このような表現はHSV色空間のモデルとして数学的に厳密であると考えられるかもしれないが、視覚化された彩度レベルと色相の精度は黒に近づくにつれて減少する。さらに、通常コンピュータは有限の範囲でRGB値を格納する。精度の制限は人間の色認知能力の限界とも関連し、ほとんどのケースで円錐による視覚化はより現実的とされている。

HSVと色覚

HSVモデルと人間が色を知覚する方法が類似しているため、グラフィックデザイナーRGBCMYKのようなモデルよりHSVカラーモデルを用いることを好むことがある。RGBとCMYKはそれぞれ加法混合減法混合によるモデルであり、どちらも原色の組み合わせによって色が定義される。それに対しHSVはより人間と親和性のある内容、この色は何色か・鮮やかさはどのくらいか・明るくしたり暗くするにはどうしたらいいか、で色についての情報カプセル化する。HLS色空間も同様に直感的に理解しやすい。

HSV三刺激値空間は、放射測定された物理的なパワースペクトルへ一対一に対応させることはできない。従って、HSV座標と波長振幅といった物理的な光の性質の間を対応させる方法は存在しない。もし物理的直感が必要であれば、以下のような「色彩測定」の心理物理的技術を用いて、HSV座標系を擬似的に変換することは可能である。

RGBからHSVへの変換

R、GおよびBが0.0を最小量、1.0を最大値とする0.0から1.0の範囲にあり、(R,G,B)で定義された色が与えられたとすると、それに相当する(H,S,V)カラーは次のような数式により決定することができる。

R,G,Bの三つの値の内、最大のものをMAX、最小のものをMINとすると、この式は次のように書ける。

H={undefined,if MIN=MAX60×G-RMAX-MIN+60,if MIN=B60×B-GMAX-MIN+180,if MIN=R60×R-BMAX-MIN+300,if MIN=GV=MAX{\displaystyle {\begin{aligned}H&={\begin{cases}{\text{undefined,}}&{\text{if }}\mathrm {MIN} =\mathrm {MAX} \\60\times {\frac {G-R}{\mathrm {MAX} -\mathrm {MIN} }}+60,&{\text{if }}\mathrm {MIN} =B\\60\times {\frac {B-G}{\mathrm {MAX} -\mathrm {MIN} }}+180,&{\text{if }}\mathrm {MIN} =R\\60\times {\frac {R-B}{\mathrm {MAX} -\mathrm {MIN} }}+300,&{\text{if }}\mathrm {MIN} =G\end{cases}}\\V&=\mathrm {MAX} \end{aligned}}}

円錐モデルS=MAX-MIN{\displaystyle S=\mathrm {MAX} -\mathrm {MIN} \,}

円柱モデルS=MAX-MINMAX{\displaystyle S={\frac {\mathrm {MAX} -\mathrm {MIN} }{\mathrm {MAX} }}}

結果は(H,S,V)形式である。Hは0.0から360.0まで変化し、色相が示された色環に沿った角度で表現される。SおよびVは0.0から1.0までの範囲で変化する彩度および明度である。角座標系で、Hの範囲は0から360までであるが、その範囲を超えるHは360.0で割った剰余(またはモジュラ演算)でこの範囲に対応させることができる。たとえば-30は330と等しく、480は120と等しくなる。

この式はHSVの他の性質も示す。

ソフトウェアでの変換処理

以下の処理を行うことで変換することができる。

※HSV/RGB全要素を0.0~1.0の浮動小数点数で表現した円柱モデルの場合

// (float r, float g, float b)
float max = r > g ? r : g;
max = max > b ? max : b;
float min = r < g ? r : g;
min = min < b ? min : b;
float h = max - min;
if (h > 0.0f) {
    if (max == r) {
        h = (g - b) / h;
        if (h < 0.0f) {
            h += 6.0f;
        }
    } else if (max == g) {
        h = 2.0f + (b - r) / h;
    } else {
        h = 4.0f + (r - g) / h;
    }
}
h /= 6.0f;
float s = (max - min);
if (max != 0.0f)
    s /= max;
float v = max;

HSVからRGBへの変換

Hが色相を配置した色環に沿って0.0から360.0の範囲で変化する角度で表記され、彩度を意味するS、明度を意味するVがそれぞれ0.0から1.0の間で変化する。このような(H,S,V)値によって定義されたある色が与えられているとするとき、次の式を通してこれに対応する(R,G,B)カラーを決定することができる。

まず、もしSが0.0と等しいなら、最終的な色は無色もしくは灰色である。このような特別な場合、R、G、およびBは単純にVと等しい。上記の通り、この場合Hは無意味となる。

円柱モデルからの変換C=V×S{\displaystyle C=V\times S}

円錐モデルからの変換C=S{\displaystyle C=S}

H=H60X=C(1-|Hmod2-1|)(R,G,B)=(V-C)(1,1,1)+{(0,0,0)if H is undefined(C,X,0)if 0H<1(X,C,0)if 1H<2(0,C,X)if 2H<3(0,X,C)if 3H<4(X,0,C)if 4H<5(C,0,X)if 5H<6{\displaystyle {\begin{aligned}H^{\prime }&={\frac {H}{60^{\circ }}}\\X&=C(1-|H^{\prime }\;{\bmod {2}}-1|)\\(R,G,B)&=(V-C)(1,1,1)+{\begin{cases}(0,0,0)&{\mbox{if }}H{\mbox{ is undefined}}\\(C,X,0)&{\mbox{if }}0\leq H^{\prime }<1\\(X,C,0)&{\mbox{if }}1\leq H^{\prime }<2\\(0,C,X)&{\mbox{if }}2\leq H^{\prime }<3\\(0,X,C)&{\mbox{if }}3\leq H^{\prime }<4\\(X,0,C)&{\mbox{if }}4\leq H^{\prime }<5\\(C,0,X)&{\mbox{if }}5\leq H^{\prime }<6\end{cases}}\end{aligned}}}

ソフトウェアでの変換処理

以下の処理を行うことで変換することができる。

※HSV/RGBを0.0~1.0の浮動小数点数で表現した円柱モデルの場合

// (float h, float s, float v) float r = v; float g = v; float b = v; if (s > 0.0f) {     h *= 6.0f;     final int i = (int) h;     final float f = h - (float) i;     switch (i) {         default:         case 0:             g *= 1 - s * (1 - f);             b *= 1 - s;             break;         case 1:             r *= 1 - s * f;             b *= 1 - s;             break;         case 2:             r *= 1 - s;             b *= 1 - s * (1 - f);             break;         case 3:             r *= 1 - s;             g *= 1 - s * f;             break;         case 4:             r *= 1 - s * (1 - f);             g *= 1 - s;             break;         case 5:             g *= 1 - s;             b *= 1 - s * f;             break;     } } 

関連項目

・・・・・・・・・・・・・・・・・・
出典:wikipedia
2019/01/22 03:56

HAPPY Wikipedia

あなたの考える「HSV色空間」の意味を投稿しよう
「HSV色空間」のコンテンツはまだ投稿されていません。
全部読む・投稿 

HSV色空間スレッド一覧

・・・・・・・・・・・・・・・・・・
「HSV色空間」のスレッドを作成する
HSV色空間の」
友達を探す
掲示板を探す
このページ
友達に教える
URLをコピー

注目のキーワード

錦織圭/北島康介/2014_FIFAワールドカップ・アジア予選/サッカー日本女子代表/消費税/東京スカイツリー/ダルビッシュ有/イチロー/香川真司/野田内閣/復興庁/石川遼/HKT48/AKB48/ワールド・ベースボール・クラシック日本代表/黒田博樹/尖閣諸島/バレンタインデー/ONE_PIECE

キーワードで探す

 
友達を探す
掲示板を探す
ハッピーWiki
ハッピーメール
ハッピーランド
HAPPY NEWS
2010Happy Mail