「HSV色空間」の版間の差分

削除された内容 追加された内容
m →‎RGBからHSVへの変換: とりあえず \mathrm 化
N.Mori (会話 | 投稿記録)
編集の要約なし
33行目:
R,G,Bの三つの値の内、最大のものをMAX、最小のものをMINとすると、この式は次のように書ける。
 
<math>H =
\begin{align}
H &=
\begin{cases}
60undefined, \times & \fractext{Gif - B}{\mathrm{MAX} - \mathrm{MIN}} + 0, & \text{if }= \mathrm{MAX} = R \\
60 \times \frac{BG - RB}{\mathrm{MAX} - \mathrm{MIN}} + 12060, & \text{if } \mathrm{MAXMIN} = GB \\
60 \times \frac{RB - GR}{\mathrm{MAX} - \mathrm{MIN}} + 240180, & \text{if } \mathrm{MAXMIN} = BR \\
60 \times \frac{R - G}{\mathrm{MAX} - \mathrm{MIN}} + 300, & \text{if } \mathrm{MIN} = G
\end{cases}
\end{cases} \\
<math>V &= \mathrm{MAX} \,</math>
\end{align}
</math>
 
円錐モデル<math>S = \mathrm{MAX} - \mathrm{MIN} \,</math>.
さらに H += 360 if H &lt; 0
 
円柱モデル<math>S = \frac {\mathrm{MAX} - \mathrm{MIN}} {\mathrm{MAX}}</math>
 
<math>V = \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と等しくなる。
53 ⟶ 56行目:
* MAX = MIN(例・S = 0)のとき、 Hは定義されない。上記のHSV空間の図を参照するとよい。もしS = 0ならこの色は中央のグレイの直線の周囲にあり、従ってこの色には彩度がなく、角座標には意味がない。
 
* 円柱モデルでMAX = 0(例・V = 0)のとき、Sは未定義である。これは上記の円錐状の図に最もよく表れている。もしV = 0ならこの色は完全な黒であり、この色に色相も彩度もない。従って円錐状の図は単一の点に潰れ、この点では角度も角座標系も無意味である。
 
円柱よりは円錐モデルを好む人は、次のようにSの方程式を変更することによって円錐空間を実現することができる。
 
<math>S = \mathrm{MAX} - \mathrm{MIN} \,</math>.
 
== HSVからRGBへの変換 ==
65行目:
まず、もしSが0.0と等しいなら、最終的な色は無色もしくは灰色である。このような特別な場合、R、G、およびBは単純にVと等しい。上記の通り、この場合Hは無意味となる。
 
円柱モデルからの変換<math>C &= V \times S\\</math>
Sがゼロでない場合、次の式を用いることができる。
 
円錐モデルからの変換<math>C &= V\\</math>
<math>H_i = \lfloor { H \over 60 } \rfloor \pmod 6 </math>
 
<math>
<math>f = { H \over 60 } - H_i</math>
\begin{align}
C &= V \times S\\
H^\prime &= \frac{H}{60^\circ} \\
X &= C (1 - |H^\prime \;\bmod 2 - 1|)\\
 
<math>p(R, G, B) &= (V - C)(1, 1, - S 1) +\,</math>begin{cases}
(0, 0, 0) &\mbox{if } H \mbox{ is undefined} \\
 
(C, X, 0) &\mbox{if } 0 \leq H^\prime < 1 \\
<math>q = V ( 1 - f S ) \,</math>
(X, C, 0) &\mbox{if } 1 \leq H^\prime < 2 \\
 
(0, C, X) &\mbox{if } 2 \leq H^\prime < 3 \\
<math>t = V ( 1 - ( 1 - f ) S ) \,</math>
(0, X, C) &\mbox{if } 3 \leq H^\prime < 4 \\
 
<math>(X, 0, C) &\mbox{if } H_i4 = 0\leq H^\rightarrowprime R< = V, G = t, B = p5 \,</math>\
(C, 0, X) &\mbox{if } 5 \leq H^\prime < 6
 
\end{cases}
<math>\mbox{if } H_i = 1 \rightarrow R = q, G = V, B = p \,</math>
\end{align}
 
</math>
<math>\mbox{if } H_i = 2 \rightarrow R = p, G = V, B = t \,</math>
 
<math>\mbox{if } H_i = 3 \rightarrow R = p, G = q, B = V \,</math>
 
<math>\mbox{if } H_i = 4 \rightarrow R = t, G = p, B = V \,</math>
 
<math>\mbox{if } H_i = 5 \rightarrow R = V, G = p, B = q \,</math>
 
== 関連項目 ==