UPL2

<色に関係した自作ソフト>
  • Visual Studio 2013で作成
  • ファイル名(***.exe)を右クリックして、「対象をファイルとして保存」でダウンロード
  • 自動実行ファイル(.exe)であり、ダブルクリックで起動


  • RGB-CMYモデル
ソフト:11.exe
 色立体(RGB-CMYの立方体)を、3方向(R&C軸,G&M軸,B&Y軸)から断面をとって色平面を観察
解説:
 1段目:左)RG面(横軸:R軸,縦軸:G軸),中)断層面,右)CM面(横軸:C軸,縦軸:M軸)
  断層面の位置:左(Y)←スクロールバー→右(B)
 2段目:左)GB面(横軸:G軸,縦軸:B軸),中)断層面,右)MY面(横軸:M軸,縦軸:Y軸)
  断層面の位置:左(C)←スクロールバー→右(R)
 3段目:左)BR面(横軸:B軸,縦軸:R軸),中)断層面,右)YC面(横軸:Y軸,縦軸:C軸)
  断層面の位置:左(M)←スクロールバー→右(G)

コメント)
 黒を原点とし、互いに直角な3方向の頂点に赤・青・緑を配置すると、黒の反対側は白(赤+緑+青)となり、それと隣接する頂点は、シアン(緑+青)・マゼンタ(青+赤)・黄(赤+緑)になります。
 まず、黒・赤・緑・黄で囲まれる平面は、青を加えていくことで、青・マゼンタ・シアン・白で囲まれる平面となります。
 その間の様子を連続的に断層として確認できます。
 次に、黒・緑・青・シアンで囲まれる平面は、赤を加えていくことで、赤・黄・マゼンタ・白で囲まれる平面となります。
 その間の様子を連続的に断層として確認できます。
 最後に、黒・青・赤・マゼンタで囲まれる平面は、緑を加えていくことで、緑・シアン・黄・白で囲まれる平面となります。
 その間の様子を連続的に断層として確認できます。
 どの方向の断層かは、右側の色立体(RGB-CMYの立方体)の模式図をみて確認できます。

  • 混色
ソフト:12.exe
 加法混色,減法混色,αブレンドの3通りでの混色をリアルタイムに再現
解説:
 上段:左)加法混色,中)減法混色,右)αブレンド
 下段:
  左)黒背景(R 0,G 0,B 0)に対して、R,G,Bを0~255で3ヶ所に出力
   (重なった場所は加法混色)
    Wは、RとGとBを同時に、同一値で0~255で変更
  中)白背景(C 0,M 0,Y 0)に対して、C,M,Yを0~255で3ヶ所に出力
   (重なった場所は減法混色)
    Kは、CとMとYを同時に、同一値で0~255で変更
  右)黒背景(R 0,G 0,B 0)に対して、3ヶ所に255で出力されたR,G,Bのαチャンネルを0~255で変更
   (重なった場所はαブレンド:重なり順序の影響あり)
    αは、RのαとGのαとBのαを同時に、同一値で0~255で変更

コメント)
 俗に言う、「光の三原色(RGB)」と「絵の具の三原色(CMY)」において、3つの色を混ぜて重なる部分が混色される様子をリアルタイムでシミュレートできるように作りました。
 αブレンドによる重ね合わせのシミュレート機能も付けましたが、こちらは混色ではなくて半透明処理になります。

  • 色合成
ソフト:13+.exe
 2色のそれぞれのR,G,Bチャンネルから様々な方法によって合成色を作成
 最左)色1(下段の3本の縦スクロールバーでR,G,BもしくはC,M,Yを0~255で指定)
 最右)色2(下段の3本の縦スクロールバーでR,G,BもしくはC,M,Yを0~255で指定)

 1段目)
  左1:2乗平均平方根
   X3=√{(X1^2+X2^2)/2}
  左2:相加平均
   X3=(X1+X2)/2
  中:加重平均(下段の横スクロールバーでαを0~100%で指定)
   X3={(100-α)/100}X1+(α/100)X2
  右1:相乗平均
   X3=exp{(log X1+log X2)/2}=√(X1×X2)
  右2:調和平均
   X3=2/{(1/X1)+(1/X2)}=(2×X1×X2)/(X1+X2)
 2段目)
  左1:加算
   X3=X1+X2 <0
  左2:最大値
   X3=max(X1,X2)
  右1:最小値
   X3=min(X1,X2)
  右2:加算(超過分)
   X3=(X1+X2)-255 ≧0
 3段目)
  左1:平方和平均
   X3=255×{(X1/255)^2+(X2/255)^2}/2=(X1^2+X2^2)/(255×2)
  左2:平方根平均
   X3=255×{√(X1/255)+√(X2/255)}/2=√255×(√X1+√X2)/2
  中:乗算
   X3=255×(X1/255)×(X2/255)=(X1×X2)/255
  右1:減算(1-2)
   X3=X1-X2
  右2:差の絶対値 ≧0
   X3=|X1-X2|

コメント)
 俗に言う、「色のブレンド」を各チャンネルも並列表示して、リアルタイムにシミュレートします。
 有名なのは、「αブレンド」「乗算ブレンド」「加算ブレンド」「減算ブレンド」「ORブレンド(Brightenブレンド)」「ANDブレンド(Darkenブレンド)」でしょうか。
 計算方法としては、「加重平均」「乗算」「加算」「減算」「最大値」「最小値」による処理となっています。

  • 明度-彩度-色相
ソフト:14+++.exe
 色立体の全断層図のカラーマップを、指定された計算方法による明度マップ・彩度マップ・色相マップへ変換
 1段目:RGB-CMYモデルの色立体の、RG面からCM面までB&Y軸に沿った断層図を展開
 (「復帰」ボタンで上段と下段を含めて図を初期化)
 2段目:明度をL1-L4から、彩度をS1-S6から、色相をH1-H2(カラーとグレーを選択)から指定
 (Hは255×0/6~255×1/6をR,255×1/6~255×3/6をG,255×3/6~255×5/6をB,255×5/6~255×6/6をRに割り当て) (R=G=BでHが定義されない場合、Hはグレースケールでは0、カラースケールでは白を割り当て)
 3段目:「上段」ボタンで、カラー断層図の指定された属性の値をグレースケールマップ(一部はカラーマップ)で表示
 4段目:「下段」ボタンで、カラー断層図の指定された属性の値をグレースケールマップ(一部はカラーマップ)で表示

Color
L1=Max
L2=(Max+Min)/2
L3=(R+G+B)/3
L4=Min
L5=0.30R+0.59G+0.11B
※NTSC係数による加重平均
L6=(R*G*B)^(1/3)
L7=3/{(1/R)+(1/G)+(1/B)}
L8=√{(R^2+G^2+B^2)/3}
L9=exp{(log R+log G+Log B)/3}=L6
L10=Median(R,G,B)=Min{Max(R,G),Max(G,B),Max(B,R)}=Max{Min(R,G),Min(G,B),Min(B,R)}

S1=√( {(R-G)^2+(G-B)^2+(B-R)^2}/2 )
S2=Max-Min
S3={(Max-Min)/Max}×255
S4=Max[ {1-3×Min/(R+G+B)}×255,{1-3(255-Max)/(3×255-R-G-B)}×255 ]
①1-3×Min/(R+G+B)={(R+G+B)-3×Min}/(R+G+B)
 ={(R+G+B)/3-Min}/{(R+G+B)/3}
 ={(R-Min)+(G-Min)+(B-Min)}/(R+G+B)
②1-3(255-Max)/(3×255-R-G-B)={(3×255-R-G-B)-3(255-Max)}/{3×255-(R+G+B)}
 ={Max-(R+G+B)/3}/{255-(R+G+B)/3}
 ={(Max-R)+(Max-G)+(Max-B)}/{(255-R)+(255-G)+(255-B)}
S5=
L>255/2: [(Max-Min)/{2×255-(Max+Min)}]×255
L<255/2: {(Max-Min)/(Max+Min)}×255
S6=
L>255/2: {(Max-Min)/(Max+Min)}×255
L<255/2: [(Max-Min)/{2×255-(Max+Min)}]×255
S7=[(Max-Min)/{255-|Max+Min-255|}]×255
※S7=[(Max-Min)/{255-|Max+Min-255|}]×255=S5
①Max+Min-255>0より、Max+Min>255で、Max+Min/2>255/2の場合
 |Max+Min-255|=Max+Min-255のため、
 S7=[(Max-Min)/{255-|Max+Min-255|}]×255
   =[(Max-Min)/{255-Max-Min+255}]×255
   =[(Max-Min)/{2×255-(Max+Min)}]×255=S5
②Max+Min-255<0より、Max+Min<255で、Max+Min/2<255/2の場合
 |Max+Min-255|=-Max-Min+255のため、
 S7=[(Max-Min)/{255-|Max+Min-255|}]×255
   =[(Max-Min)/{255+Max+Min-255}]×255
   ={(Max-Min)/(Max+Min)}×255=S5

H1=Arctan( {(√3)(G-B)}/{2R-(G+B)} ) =Arctan( {(√3)(G-B)}/{2R-(G+B)} )×255/360
H2=
 Max=R: {(G-B)/(Max-Min)}×60={(G-B)/(Max-Min)}×255×1/6
 Max=G: {(B-R)/{Max-Min}}×60+120={(B-R)/{Max-Min}}×255×1/6+255×1/3
 Max=B: {(R-G)/{Max-Min}}×60+240={(R-G)/{Max-Min}}×255×1/6+255×2/3
H1(カラー)
H2(カラー)

コメント)
 HSV/HSBとHSL/HLSにおける明度と彩度の違いを、全色において数値化して表にしていたものを、比較しやすいようにグレースケールにしたものです。

 HSV/HSBでは、明度は最大値=L1です。
 (最小値=L4は、L1のアンチテーゼです)
 彩度は、円錐モデルでは範囲(最大値と最小値の差)=S2、円柱モデルでは範囲を最大値で除算したS3となります。

 HSL/HLSでは、明度は範囲中央(ミッドレンジ:最大値と最小値の平均)=L2になります。
 彩度は、範囲を最大値と最小値の和で除算したS7=S5になります。
 (S5はS7より導かれ、条件を逆にしたS6は、S5のアンチテーゼです)

 RGB-CMYの色立体の白黒対角線を基準とした明度は、各チャンネルの平均値=L3になります。
 生理学的特性を考慮すると、NTSC係数による加重平均値=L5になります。
 色立体の白黒対角線からの距離である彩度は、白黒対角線に直交する平面を基準とします。
 純色の距離を最大値として除算したS1と、平面の最大可能距離を最大値として除算したS4があります。

 色相は、円モデルによるAtan関数=H1、または近似的に六角形モデルによる各チャンネルの差を範囲で除算したH2になります。
 Rを0度にしており、色相環のため、-60度~+60度(0度~+60度,+300度~360度)の範囲に分断されます。
 Gは120度のため+60度~+180度、Bは240度のため180度~+300度(-120度では-180度~-60度)になります。

  • パラメータ表示
ソフト:15.exe
 色立体の全断層図のカラーマップを、指定された計算方法による明度マップ・彩度マップ・色相マップへ変換
 左:R,G,Bを指定(R,G,BとC,M,Yの数値および色を表示)
  上)K:黒(R 0,G 0,B 0),W:白(R 255,G 255,B 255)を一括指定
  中)R,G,Bを指定するスクロールバー,各チャンネルの数値と色を表示
  下)R,G,Bで指定した色を表示,連動チャンネルを指定
 中:明度9種類を、数値と色およびバーグラフで表示
 右上:色相2種類を、数値と色およびメーターグラフで表示
 右下:彩度6種類を、数値と色およびバーグラフで表示,自動回転の色相ローテション
   (色相は針で角度を表示し、無彩色では針の代わりに円を表示)
 下:明度・彩度・色相の計算式を表示(テキストボックス内は編集不可だが、上下スクロール可能)

コメント)
 指定した色における色の属性パラメータを表示します。
 色は各チャンネル毎に、スクロールバーによって連続的に変更できます。
 様々な定義による明度・彩度・色相を、バーグラフやメーターグラフで視覚的に表示します。
 自動で色相ローテーションさせるボタン(右回転と左回転)もあります。

最終更新:2015年03月05日 13:39
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。