2014-06-17

RGB から簡易に色相を得る(HSV色空間)

RGBから簡易に色相を得たいという話があった。

それならば、HSV色空間の考え方を使うのがいいと思う。
http://ja.wikipedia.org/wiki/HSV%E8%89%B2%E7%A9%BA%E9%96%93#RGB.E3.81.8B.E3.82.89HSV.E3.81.B8.E3.81.AE.E5.A4.89.E6.8F.9B
の H 値が使えるだろう。

ここのロジックをざっくり全円周6分割にするならば次のようになるだろう。

1.RGB 値のうちで最大 MAX と最小 MIN を求める。
2.MIN = MAX ならば、無彩色つまりグレイスケールである。
3.MIN = B ならば、
 (1) G < R ならば、オレンジ色
(2) G ≒ R ならば、黄色
 (2) さもなくば(G > R)、黄緑
4. MIN = R ならば、
 (1) B < G ならば、緑
 (2) さもなくば(G >= R)、淡青
5. MIN = G ならば、
 (1) R < B ならば、青紫
 (2) さもなくば(R >= B)、赤紫

三色視の人は黄色付近に敏感(いいかえればRGBがあまり一様でない)と思われ
るので、黄色まわりは分割を細かくした。

でも、MAX で書き換えたほうが綺麗になりそうだなあ。とりあえず。

0 件のコメント:

コメントを投稿