Home    不思議の色   RGBとCMY    色の合成と演算について    HSV、RGB変換    HSVとRGBの関係  

色の合成と演算
このページは「不思議の色」の中から色の演算に関する部分を抜き出したものです

3原色の合成  16 進数 2 桁で入力、または色の領域をクリック
 加算法 RGB Red
Green
Blue

 
RGB
  
  




  


 減算法 CMY Cyan
Magenta
Yellow

 
CMY
  
  




  
(RGB値)

2色合成の演算
16 進数 6 桁で入力、または色の領域をクリック
水平位置で 00~ff を決定し、垂直位置によって RGBの要素を決定

RGB値 
     
  




  


平均色 の否定   論理和 の否定   論理積 の否定   排他的論理和 の否定  
 
原色の入力1   入力2
背景色          空五倍子   



 TOP 
RGBとCMY

RGBを各1ビット( 0 or 1 )にして、3ビット、全8色で表してみます。
... ..B .G. .GB R.. R.B RG. RGB
 000   001   010   011   100   101   110   111 
Black Blue Green Cyan Red Magenta Yellow White

RGBは、
青 + 緑 = シアン (001 | 010 = 011)
青 + 赤 = マジェンタ (001 | 100 = 101)
赤 + 緑 = 黄色 (100 | 010 = 110)
のように論理和で足し算をすることができます。加算法による色の合成です。

RGB3色のうちの2色を足し合わせたものがCMYという関係になっています。
ところで、RとC (100 _ 011)、GとM (010 _ 101)、BとY (001 _ 110)と並べてみると、うまい具合に凹凸関係になっていることが分かります。

お互いに埋めあえば全体集合(白111)になる関係、補数の関係であり、否定値の関係であり、補色の関係です。
RGBとCMYはポジとネガの関係であり、有機ELと液晶の違いでもあります。
有機ELのRGBは発光主体であり、液晶のCMYはフィルターです。

CMYは、論理積で計算します。減算法による色の合成です。
C + M = B (011 & 101 = 001)
M + Y = R (101 & 110 = 100)
Y + C = G (110 & 011 = 010)

 TOP 
色の合成と演算について(加算法と減算法)

右の図では、統一的に色の関係が分るようにCMYもRGB値で表しています。
減算法の図は色の包含関係を表現するベン図にもなっています。重なり合っているところは両者の共通部分です。全てに共通する要素である中心部分は空(Φ)であり、黒(000)ということになります。
加算法の図はそれを裏返して見ているようなもので、要素(RGB)を集めて全体(白)を形作っている図と言えるでしょう。減算法の図の中心の黒い領域からベン図の中に入り込んで、中心から外側を振り返って見ているわけです。
そうやって見ると、減算法の合成が論理積であるのに対して、加算法の合成は論理和で表されているのが分ります。減算法の合成は「黄色∩マジェンタ=赤」であり、加算法の合成は「赤∪緑=黄色」です。

CMYはRGBの否定値ですから、論理積=否定の論理和の否定という関係になります。同じようにRGBはCMYの否定値ですから、論理和=否定の論理積の否定という関係になるわけです。

右図のようにCMYを主体にした値で考える場合、これはそれぞれRGBを主体とした値の否定値、補色の値となっています。ですから、CMYを主体とした場合はCMYなりの、否定値としての論理和で計算することになるわけです。
「黄色(110) ∩ マジェンタ(101) = 赤(100)」という論理積が
「否定の黄色(001) ∪ 否定のマジェンタ(010) = 否定の赤(011)」のように否定の論理和で表されます。
同じようにCMYを主体とした場合のRGBの計算は、否定の論理積となります。
「否定の赤(011) ∩ 否定の青(110) = 否定のマジェンタ(010)」です。




 TOP 
HSV、RGB変換 
Hは位相角度(0~360)、SとVは百分率値(0~100)とし、小数点以下も有効。
RGBは16進数 2桁で入力。色彩スライダー、または数値横のボタンをクリック。

SとVを 100、Hを 300 にして、Hの+5ボタンを連続して押してみてください。
HSVとRGBの関係がよくわかると思います。
数値入力後、Tab キーを押してボタンを選択すれば、Enter キーで連続できます。




 TOP 
HSV、RGBの関係について 
色相円環のつもりです。色相は60度ごとに次のように並んでいます。

赤(ff0000) 黄(ffff00) 緑(00ff00) シアン(00ffff) 青(0000ff) マジェンタ(ff00ff)
上の図は30度ぐらいずれています。ごめんなさい。

SとVの値が 100% のとき、
Hの位相が 300~60度(上図で330~90)まで、
赤の値は ff です。 0 度に向けて青が低下し、60 度に向けて緑が上昇します。

60~180度までは
緑の値が ff で、 120 度に向けて赤が低下し、180 度に向けて青が上昇します。

180~300度までは
青の値が ff で、 240 度に向けて緑が低下し、300 度に向けて赤が上昇します。

赤(ff0000)からSの値が下がると緑と青の 00 が ff に向かってやがて白(ffffff)になり、
また、Vの値が下がると赤の ff が 00 に向かって黒(000000)になっていきます。



変換は60度ごとに分けて考えます。
Hの値が0~60度の場合です。まずSとVの値を100として、RGB値を百分率で表すと、
  R=100、 G=(60度までの角度割合)*100、 B=0、です。
ここにSの値を加味すると、
  R=100、 G=100-S*(60度から0度に向かう角度割合)、 B=100-S、です。
更にVの割合を掛けます。v=V/100とすると、
  R=100*v、 G=(100-S*(60度から0度に向かう角度割合))*v、 B=(100-S)*v、
これを0~255に投影するとRGB値(24bit)になります。
60度から120度、120度から180度と、同じような発想で(ちょっと違う)処理を繰り返しますが、以下省略します。





 TOP 






かめゐ