hirax.net::虹の彼方に。::(2000.10.25)

虹の彼方に。  share on Tumblr 

色覚モドキソフトを作る その7

 今年は好きなWEBサイトがいくつも店じまいしてしまった。「わきめも」もそんなサイトの一つだ。その今はもうない「わきめも」の中で、
 きれいな虹が見えた。だからビールを飲んだ。だけど、目に見えている虹の色は写真のフィルムには写らない。どんなフィルム・CRT・プリンターの出力色空間もとても狭くて、虹の中に見える色は出せないからだ。ビールも虹も「生」に限る。
という話があった。もう元のWEBページがあるわけじゃないから、細かいところは違っていたかもしれないけれど、大雑把な内容はこんな感じだった。- ビールも虹も「生」に限る - なんてとてもシブイセリフで良い感じだ。
 

 このセリフの中の「どんなフィルム・CRT・プリンターの出力色空間もとても狭くて、虹の中に見える色は出せないからだ。」というのを図示してみると、下の図のようになる。
 

 

 例えば、虹の中に見えるスペクトル色はこの図で言うと、黄色の矢印で描いた側の、色で塗りつぶした領域の外枠の色だ。波長の長い単色光、つまり最初は赤色から始まって、波長が短くなるに従い「赤→黄色→緑→青→紫」というようにスペクトル色はつながっている。

 この図中に、とあるCRTとプリンターの出力可能な色空間(CCMファイル中に埋め込まれているプロファイル情報を参考にしたもの)を白点線と白実線で示したが、とても狭い領域の色しか出せず、とてもじゃないが虹の中に見えるスペクトル色はこれらの機器では出ないことが判るだろう。

 だから、「生」の虹を見たときの感じは写真でもCRTでもプリンターの出力でも味わえないわけだ。おいしいビールは「生」に限る(私の趣味では)のと同じく、虹も「生」に限るのだ。
 

 だから、虹の色と同じ

の時に撮影したような太陽光のスペクトルも、こんな風にWEBページの上で眺めても、それはやっぱり分光器を「生」で覗いている感じはとてもじゃないが味わえない。
 
太陽光のスペクトル

 こんな、「赤→黄色→緑→青→紫」というスペクトル色を眺めていると、中学の頃の美術の授業を思い出した。その授業の中で、こんな色相環が教科書か何かに載っていて、「こんな色のつながりは「赤→黄色→緑→青→紫」というスペクトル色に対応しているんだよ」と美術の先生に言われた。それを聞いていた私はよく判らなくなって、「すると、何で紫と赤のところで繋がってるのでしょうか??」と先生に聞くと、その先生も「う〜ん。」と悩み始め、しまいには「いつか調べて答えが判ったら、私にも教えてくれたまえ。」と言うのである。今考えてみると、それはとても素晴らしい言葉だった(間違っても皮肉でなくて、本当に素晴らしいと思うのだ)。
 

色相環

色覚のメカニズム 内川恵二 朝倉書店 口絵より

 だけど、「赤→黄色→緑→青→紫」という単色光のスペクトルが波長としては単に一方向に変化していくだけなのに、グルっと一周する感覚を受けるのはとても不思議である。そこで、色感覚モドキソフトを作ってそこらへんの感覚を眺めてみる、つまり「できるかな?」の常套手段である「その謎を見てみよう」と思うのである。

 この「色感覚モドキソフト」はいつものように極めて大雑把でチャチな作りである。ソフトの流れとしては次に示すように、

1.光源としては二種類の場合
    • RGBのCRTモニタ
    • 単色スペクトル光
    を考える。そして、RGBのCRTモニタのRGBそれぞれのスペクトルを設定する。次に、RGBのCRTモニタを使用する場合には、以下の作業を行う。

    2.画像を読み込み、画像の任意の場所のRGB値を元に光全体としてのスペクトルを計算する。

    3.錐体の分光感度を適当に設定し、Boynton色覚モデルをもとに

      「赤<->緑」チャンネル
      「青<->黄」チャンネル
      「輝度」チャンネル
    のそれぞれの応答値を計算する。
という感じになっている。自分自身でいじることのできるパラメーターはRGBそれぞれのスペクトルと錐体の分光感度である。少し前に「からーふぃくしょん」のwebmasterと話している時に、錐体の分光感度が違う場合には、その違いに応じた「自然な色のつながり」があるんじゃないか、という話になったことがあったので、今回はそれを考慮して錐体の分光感度を自分でいじれるようにしてみた。

 ここに今回作成したtruecolor7を置いておく。細かい使い方は今回は割愛したい。が、多分少し使えば(使う人がいるともそうそう思えないが)、使い方はすぐに判ると思う。

いつものようにα版なのは言うまでもない。

 truecolor7の動作画面はこんな感じである。
 

truecolor7の動作画面

 左上から下に向かって、RGBそれぞれのスペクトル設定、全体でのスペクトル、読み込んだ画像、右上から、錐体の分光感度、反対色応答の出力値である。

 画像の任意の場所を調べたければ、BMP画像を読み込んでマウスで好きな場所をなぞるなり、クリックすればよいし、「赤→黄色→緑→青→紫」という単色光のスペクトル色の場合を計算したければ、右下にある「SpectrumColor」ボタンを押せば良い。

 さっそく、赤→黄色→緑→青→紫というスペクトル色の反対色応答「モドキ」を見てみたのが次のグラフである。縦軸が「輝度チャンネル」で、向かって左の軸が「青<->黄」チャンネルで、向かって右の軸が「赤<->緑」チャンネルである。この「輝度チャンネル」・「青<->黄」・「赤<->緑」という「感覚的」3次元空間で波長が一方向に変化するスペクトル色を連続的にプロットしてみると、見事に円状につながっていることが判る。「赤<->緑」チャンネルの計算が基本的にはL錐体出力からM錐体出力の差分をとって、さらにS錐体の出力をほんの少しだけ引いてやるという計算をしているため、短波長側でL錐体の感度がM錐体の感度を上回っている(ように実は設定した)のでこんな風になるのだ。単純に波長が短くなるだけなのに、見た感じ何故か紫と赤が近く見える。あくまで、大雑把な話だけれど。

 中学の頃の私がこれで納得するとは思えないが、少なくとも今の私はこの円環構造を目にすることができればこれで満足である。
 
 

赤→黄色→緑→青→紫というスペクトル色の反対色応答「モドキ」

 ちなみに、つぎに示すのは輝度が一定になるようにした画像の周辺部をグルッと計算してみたものである。このグラフでは縦軸の「輝度チャンネル」の値はずっと同じで、「青<->黄」チャンネル・「赤<->緑」チャンネル平面内で円環状にグルッと一周しているのがわかると思う。自分自身が下の画像を眺めたときに、つながりが自然だなぁ、あるいは自然じゃないなぁ、と感じる感覚と重ね合わせながら見てみると面白いのではないだろうか。
 

輝度が一定になるようにした画像の周辺部をグルッと計算してみたもの

 さて、興味がある方がいらっしゃれば、このバッタもんソフトを使って、ぜひ色々なパラメータを振って色々な画像を読み込んで試行錯誤をしてみてもらいたいと思う。そして、その結果を私に教えていただければとてもうれしい。もちろん、このソフトを使うという話に限らず、面白そうなアイデアがあれば大歓迎である。
 

 さて、虹というとミュージカル「オズの魔法使い」の中でジュディ・ガーランドが歌っていた"OverThe Rainbow"を何故か思い出す。実は、このソフトを作っているときも「ふ〜ん、ふ〜ん、ふ〜んふんふふふ〜ん」と歌詞が判らないまま鼻歌を歌いながら作業していた。歌詞が判らないまま、というのも何なので、せっかくなので調べた歌詞で今回の話を終わらせたいと思う。虹の彼方には…
 

 Somewhere, over the rainbow, skies are blue.And the dreams that you dare to dream really do come true.

この記事と関係がある他の記事