HSV色空間のソースを表示
←
HSV色空間
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{出典の明記| date = 2019年1月12日 (土) 02:16 (UTC)}} '''HSV色空間''' ({{lang-en-short|HSV model}}) は[[色相]] ({{en|Hue}})、[[彩度]] ({{en|Saturation, Chroma}})、[[明度]] ({{en|Value, Brightness}}) の三つの成分からなる[[色空間]]。'''HSBモデル''' ({{en|Hue, Saturation, Brightness}}) とも言われる。 [[ファイル:Hsv_sample.png|frame|環状のHSV色空間]] [[HLS色空間]] ({{en|Hue, Saturation, Lightness}}) とよく似ている。 ; 色相 : [[色]]の種類(例えば、赤、青、黄色)。0–360° の範囲([[アプリケーションソフトウェア|アプリケーション]]によっては 0–100% に[[正規化]]されることもある)。 ; 彩度 : 色の鮮やかさ。0–100% の範囲。刺激純度と {{en|colorimetric purity}} の色彩的な量と比較して'''純度'''などともいう。色の彩度の低下につれて、[[灰色]]さが顕著になり、くすんだ色が現れる。また彩度の逆として {{en|desaturation}} を定義すると有益である。 ; 明度 : 色の明るさ。0–100% の範囲。 HSVは[[1978年]]に[[アルヴィ・レイ・スミス]]によって考案された。これは[[RGB]]色空間の[[非線形性|非線形変換]]であり、色の変換に用いられることもある。HSVとHSBは同一であるがHLSとは異なる。 == HSVの視覚化 == HSVモデルは通例[[グラフィックソフトウェア|コンピュータグラフィックスアプリケーション]]に用いられる。いろいろなアプリケーションでユーザは個々のグラフィックス要素に適用する色を選択する必要がある。このような場合、HSV色環がよく用いられる。これは[[円 (数学)|円]]状の領域に色相が表現されたもので、それとは別に[[三角形]]の領域が彩度と明度の表現に用いられることがある。上図における三角形の水平軸は明度を指示し、また垂直軸は彩度に対応する。このような形式のインターフェースでは、最初の操作で環状の領域から色相を選択し、続いて三角形の領域から所望の彩度と明度を選択する。 [[ファイル:HSV_cone.jpg|thumb|300px|HSV色空間の円錐]] [[ファイル:HSV_cylinder.jpg|thumb|300px|HSV色空間の円柱]] HSVモデルの別の視覚化方法は[[円錐]]である。この表現では、色相は色環の三次元円錐状の構造に描かれる。彩度はその円錐の中心からの距離、明度は円錐の頂点からの距離で表される。円錐ではなく六角形の錐体(六角錐)で表現するものもある。この方法は単一の物体でHSV色空間全体を視覚化するのに適している。三次元形状のため二次元の[[ユーザインタフェース|コンピュータインターフェイス]]における色の選択に利用するのは難しい。 HSV色空間は[[円柱 (数学)|円柱]]状の物体として[[可視化|視覚化]]されることもある。上記と同様に色相は円柱の外周に沿って変化し、彩度は中心からの距離に伴って変化する。明度も頂点から底へ向かって変化する。このような表現はHSV色空間のモデルとして数学的に厳密であると考えられるかもしれないが、視覚化された彩度レベルと色相の精度は黒に近づくにつれて減少する。さらに、通常コンピュータは有限の範囲でRGB値を格納する。精度の制限は人間の色認知能力の限界とも関連し、ほとんどのケースで円錐による視覚化はより現実的とされている。 == HSVと色覚 == HSVモデルと[[ヒト|人間]]が色を[[知覚]]する方法が類似しているため、[[グラフィックデザイナー]]は[[RGB]]や[[CMYK]]のようなモデルよりHSVカラーモデルを用いることを好むことがある。RGBとCMYKはそれぞれ[[加法混合]]と[[減法混合]]によるモデルであり、どちらも[[原色]]の組み合わせによって色が定義される。それに対しHSVはより人間と親和性のある内容、この色は何色か・鮮やかさはどのくらいか・明るくしたり暗くするにはどうしたらいいか、で色についての[[情報]]を[[カプセル化]]する。HLS色空間も同様に[[直感]]的に理解しやすい。 HSV三刺激値空間は、[[放射測定]]された物理的な[[パワースペクトル]]へ一対一に対応させることはできない。従って、HSV座標と[[波長]]や[[振幅]]といった物理的な光の性質の間を対応させる方法は存在しない。もし物理的直感が必要であれば、以下のような「色彩測定」の心理物理的技術を用いて、HSV座標系を擬似的に変換することは可能である。 * 色相は色の主波長を定義し、色相はスペクトルに沿った波長位置を意味する。ただし[[インディゴ]]から[[赤]]の間(およそ240 - 360度)は純紫線(ピュアパープルの線)上を示す。 * もし色相知覚が再現されれば、実際[[単色光|単色]]では主波長に位置する純粋な[[周波数スペクトル|スペクトル]]色を利用し、「脱飽和」は適用された主波長の頻度分布あるいは単色光に同じ力の量の光(例・白)を加算することとだいたい同じことになるだろう。 * 明度は[[スペクトラム]]のパワーの総量または光の[[波形]]の最大[[振幅]]にほぼ類似する。しかしながら、実際のところ明度が最大のスペクトル成分(統計学「[[要約統計量|モード]]」、この分布に直交し累積した力ではない)に近いことは以下の方程式から分かる。 == RGBからHSVへの変換 == R、GおよびBが0.0を最小量、1.0を最大値とする0.0から1.0の範囲にあり、(R,G,B)で定義された色が与えられたとすると、それに相当する(H,S,V)カラーは次のような数式により決定することができる。 R,G,Bの三つの値の内、最大のものをMAX、最小のものをMINとすると、この式は次のように書ける。{{疑問点|date=2019年1月12日 (土) 02:16 (UTC)}} <math> \begin{align} 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{align} </math> 円錐モデル<math>S = \mathrm{MAX} - \mathrm{MIN} \,</math> <!-- MIN の範囲が 0 以上 1 以下なので、(円錐モデルでは) V >= S の関係が生じる事について、記事内で補足説明が必要かもしれません。--> 円柱モデル<math>S = \frac {\mathrm{MAX} - \mathrm{MIN}} {\mathrm{MAX}}</math> 結果は(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の他の性質も示す。 * MAX = MIN(例・S = 0)のとき、 Hは定義されない。上記のHSV空間の図を参照するとよい。もしS = 0ならこの色は中央のグレイの直線の周囲にあり、従ってこの色には彩度がなく、角座標には意味がない。 * 円柱モデルでMAX = 0(例・V = 0)のとき、Sは未定義である。これは上記の円錐状の図に最もよく表れている。もしV = 0ならこの色は完全な黒であり、この色に色相も彩度もない。従って円錐状の図は単一の点に潰れ、この点では角度も角座標系も無意味である。 === ソフトウェアでの変換処理 === 以下の処理を行うことで変換することができる。 ※HSV/RGB全要素を0.0~1.0の浮動小数点数で表現した円柱モデルの場合 <syntaxhighlight lang="java"> // (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; </syntaxhighlight> == 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は無意味となる。 円柱モデルからの変換<math>C = V \times S</math> 円錐モデルからの変換<math>C = S</math> <math> \begin{align} 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{align} </math> === ソフトウェアでの変換処理 === 以下の処理を行うことで変換することができる。 ※HSV/RGBを0.0~1.0の浮動小数点数で表現した円柱モデルの場合{{要検証|date=2019年5月}} <syntaxhighlight lang="java"> // (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; } } </syntaxhighlight> == 関連項目 == {{commonscat|HSV}} *[[色]] *[[色空間]] {{Color topics}} {{デフォルトソート:HSVいろくうかん}} [[Category:色空間]] [[simple:Color wheel#The 12 major colors of the color wheel]]
このページで使用されているテンプレート:
テンプレート:Color topics
(
ソースを閲覧
)
テンプレート:Commonscat
(
ソースを閲覧
)
テンプレート:En
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:出典の明記
(
ソースを閲覧
)
テンプレート:疑問点
(
ソースを閲覧
)
テンプレート:要検証
(
ソースを閲覧
)
HSV色空間
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報