スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

色彩工学 その3

2007年08月23日 23:49

やっぱり前々回から続いています(・∀・)

前2つの記事を見てから見てください。

今回はレンズフィルタの実装方法を考えていこうと思います。
フォトショップにあるやつです。
画像をセピア色にしたり暖色系の色にしたりするやつですね。


レンズフィルタの実装方法


まず手順として、

 1 :こことかここの文献を参考に、画像の色データを分光分布のデータにします。
 
 2 :分光分布データができたら、そのスペクトルに対して、フィルタの分光分布データを積算します。
   このとき、フィルタをかける前に輝度情報(三刺激値での Y 値)を保存しておくといいでしょう。
 
 3 :フィルタをかけた分光分布データを(三刺激値 = XYZ)に戻します。
 
 4A:もしフィルタ後の輝度を戻す必要がないなら、そのままXYZデータから色データを復元します。
 
 4B:もしフィルタ後の輝度をフィルタ前の輝度と同じにしておきたい場合は、XY 座標にします(色の単位化)
   これで、輝度情報が抜けた状態になるので、保存しておいた輝度を使って色を復元させます。


あ、XY座標系とかに変換する式は自分で探してみてください。
google先生に聞けばすぐわかると思います。
  
実際にフォトショップのレンズフィルタでやってることはこれと同じことでしょう(たぶん)

また、色温度によって見え方を変化させたい場合は、画像の分光分布を出した後、
標準的な光源といわれるD65(色温度6500Kの照明)の係数で割ってから、
色温度ごとの光源の分光分布(例えばA光源など)で再計算すればいいと思われます。



、、、結局、一番初めの分光分布に戻すところがワケワカランでしたが('A`)


今回の技術を応用すれば、たとえばGPUでレンダリングした画像を加工してリアルタイムにレンズフィルタをかけるなんてことも出来ちゃうかも。

色々表現の幅は広がると思うんだけど、いかんせん処理は重そう・・・。

最初の文献で紹介されている方法を使って、
Cyan、Magenta、Yellow、White、Red、Blue、Green の波長の係数で分光分布を再現する方法はなかなか面白そう+使えそうですよね。

スポンサーサイト

色彩工学 その2

2007年08月23日 23:41

前回の続きです。

前回の記事を見てから見てください(・∀・)


スペクトル分布から色データの復元方法


今まで説明した内容から、物体の色を決定するには

 光源の分光分布×物体の分光反射率×等色関数 

が必要だといいました。


では、どうやって計算するか?

実は、光源の分光分布にしても物体の分光の反射率(分光反射率っていいます)にしても等色関数にしても、
すべて XYZ という三刺激値上で扱う係数で処理します。
(厳密に言うと、RGB 表色系の分光分布とかもありますが、
 波長によっては係数がマイナスの値を取るのでここでは使いません)

人間の色覚には色を感じる垂体が3つあるといわれています。
大まかに言うと XYZ はその垂体に各々が対応しているということになります。
(ほかの説もあるので異論がある人もいると思いますが、この辺の突っ込みはご容赦ください)

XYZ と RGB は可逆変換できます。

要するに、実際に光の伝達をある程度正確にシミュレートした結果
(例えば、洗剤の表面の膜によって乱反射された光をシミュレートするなど)を
色データにすることも可能なわけです。


ここで実際に計算式を出す前に重要なことを抑えます。

 「色」とは反射された光
 
なわけです。

要するに、計算で求めるのは「光」なわけです。
今、手元にあるのは分光分布上での各係数なわけですから、
「色」を決定するために、すべての波長においての反射率なり等色関数なりを積算し、
その結果すべてを加算することによって、初めて私たちが普段扱ってる
XYZ なり RGB などに変換できるわけです。


よって、式は、

     780
  C(i)= ∫ S(i)ρ(i)Cmf(i)dλ (i = x,y,z)
     380

になります。

ここで、
  C(i) は出来上がったXYZ三刺激地の値
  S(i) は光源の分光分布、
  ρ(i) は物体の分光反射率
  Cmf(i) は等色関数(color-matching function)
です。


もちろん、「色」を分光分布で出す分には加算する必要もありません。




後一回続きます(・∀・)
次の記事はフォトショップの機能にある
レンズフィルタについての考察です。

色彩工学 その1

2007年08月23日 23:20

久々に記事書きます(・∀・)

今ちょこっと勉強してる「色彩工学」のことです。
結構書いてるHPとか少ないし、具体的に色まで計算してるのはほとんど見当たらなかったので、誰かの参考になれば幸いです。


とりあえず第1回として「色」のこと書きます。


「色」とは?

物体の色を決めるのはその物体が持っている波長ごとの反射率です。
この波長ごとの反射率を分光反射率といいます。

さて、ではどうやって色が決定されるのでしょうか?

まず、光源によって色って変わりますよね。
夕焼けの光と昼中の光で照らされた肌の色は明らかに前者のほうが赤みがかってますよね。
同様に、蛍光灯の光と白熱電球の光で照らされた物の色も違いが出ます。

また、忘れがちなのですが、人間の目に入るときにもフィルタがかかります。
たとえば、あなたの色覚が正常だとして、「赤」といわれてる色を正確に他人に伝えることができますか?
もちろん数字ではいえます。スペクトルの波長が700nmで~などと。
ただ、イメージで伝えるとき、それは必ずあなたの主観を通ります。

実際はあなたが「赤」と思っている色が他人から見たらあなたが「青」と思っている色と
同じだったりしないでしょうか?

もちろん、人間同士でここまで極端なことは起こりえないでしょうが、
色の感じ方による個人差は若干ですがあります。

結論から言うと、色覚の正常な人がもつ色の感じ方の差異はほとんど無視していいレベルです。


ここで本題に戻りましょう。
上のことから、色が決定されるには、

 光源の分光分布×物体の分光反射率×心理的な係数

ということになります。


まず、いきなり出てきた用語をひとつずつ説明していきます。


分光分布とは光を定義するための各波長ごとの成分量です。
要するに光を各波長ごとの強さに分け表にしたようなものです。


心理的な係数とは、上で述べた、人間の見え方を各波長ごとに表にした重み付け係数のことで、
等色関数といわれています。

もう少し説明します。

人間の見える可視領域は光の波長がおおよそ380nm~780nmです。
目で感じる量は限界領域に近づくほど、「鈍く」なるといわれています。
同じエネルギーの光でも限界領域に近い420nmの波長の光と、可視領域の中心に当たる555nmの波長の光では、
555nmの方が敏感に反応するため、明るく感じます。
よって、555nmの波長の光と同じ見え方にするためには420nmの波長の光を何倍にもしないといけないわけです。

この同じ見え方にするためのきわめて主観的な係数を等色関数といいます。

幸い、実験により色覚が正常な人同士の見え方の差異は無視できるレベルなので、
これを係数化できたわけですね。




とりあえず今日はここまで('A`)
突っ込み大歓迎です。
僕も勉強しながら書いたので。

後2回ぐらい続きます。


最近の記事


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。