異常干渉色図表

昔、液晶学会のサマースクールの講師を引き受けたときに干渉色図表を作った。(干渉色図表については、偏光顕微鏡の方記してあるので、ご存じない方はそちらを見て頂きたい。)その時のファイルをお目にかけることにしよう。

この時はOS/2上のVisual Age for Basicという誰も聞いたことがないようなソフトを使って干渉色図表の中身を作り、それを画像処理ソフトに読み込んで文字などを書き込んだ。干渉色図表を作る上で一番苦労したのは、それぞれの位相差からもとめたXYZの値を画面上で表示するRGB値にどのように変換するかであった。XYZからRGBへの変換の公式はあるのだけれども、それで変換したRGB値を線形に8ビットのRGBに落として表示するとあるべき干渉色図表とは激しく色調がずれた画となってしまうのである。そこで、結局、RGB値を変換するときに、適当にべき係数をかけて非線形に変換した(γ補正もどき)。係数をいくつにしたかはまったく覚えていないけれども、そうして出来上がったのが上の図である。努力はしたけれども、色調の再現が今ひとつで、当時、不満を覚えていた記憶はある。

 最近、研究室で、ベレックコンペンセータで液晶の複屈折を測定する際に、液晶セルが厚いと補償が効かなくて暗くならないという話が出ていた。そこで、ベレックによる補償のシミュレーションをしようと思ったのだけど、そうなると干渉色をきれいに画面上で再現することが必要になってくる。昔のプログラムはどこに行ったか分からないし、第一、満足のいくものではなかったので、新たに作ることにした。Web上を探していたら、地質学会の記事にコンピュータ上で干渉色図表を作製する話があることがあるのが分かり、その論文を拾ってきた(Takenori Kato, "A method to synthesize interference color chart with personal computer", Jour. Geol. Soc. Japan(地質学会誌) Vol.107 NO.1, PP64-67.)。ただ、読んでみると、基本的に直線変換で、昔の記憶からいうと、あまり好ましいくは感じなかった。そこで、もう少し調べてみたところ、コンピュータの色再現に関してsRGBという規格があることが分かった。そこで、今回はsRGB色空間をターゲットにして干渉色図表を作ることにした。

 プログラムに対する要求は

  1. 通常の複屈折に分散のないものの干渉色図表が描ける
  2. 液晶など複屈折に分散のあるものの干渉色図表も描ける
  3. 2種類の複屈折をもつものを重ね合わせたときの干渉色図表さえも描ける

である。1と2は一つのプログラムでいいけれど、3も混ぜるとややこしくなるので、プログラムとしては単体の干渉色図表データを計算するもの、2種類の重ね合わせの干渉色図表データを計算するもの、干渉色図表データを読み込んで画面に色彩として表示するもの、の3種類を作ることにした。ここでは、単体の干渉色図表計算プログラムと表示プログラムより得られた結果(およびプログラムそのもの)を示すことにする。

まず、干渉色図表データを計算するプログラムであるが

プログラム名はprg1.exeという、やる気を見せていない名前である。プログラムは単体では動かない。CIEのXYZを計算するための係数ファイルであるcie.csv、光源を指定するls.csv、複屈折の分散を指定するdnd.csvの3つのファイルが同じディレクトリにないと、エラーを起こして止まってしまう。ls.csvは本来はCIEのD65光源などの分光分布ファイルなのだけれど、上のファイルは波長によらず同じ強度のいい加減なファイルになっている。cie.scvと、ls.csvはプログラム内で名前が決め打ちになっているので、ファイルを変えたいときはファイル名の変更で対処するしかない。それに対してdnd.csvはプログラム上から指定が可能である。必要に応じて、分散ファイルを用意されたい。ファイルの型式は1行目がコメント、2行目以降がデータとなっている。具体的には

CIE D65
380,49.98
385,52.31
390,54.65
……

といった具合である。波長は380nmから780nmまで5nmきざみである。重要なことは1行目に余計な「,」がないことで、余計なカンマが入っていると、読み込みがうまくいかない。

 プログラムを立ち上げると、勝手にcie.scvとls.csvを読み込む。複屈折分散ファイルを読み込むと、計算するためのボタンが出現する。適当な出力ファイル名を指定してボタンを押せば計算結果が出てくる。後のことを考えるとxyz.csvという名前が楽かも知れない。出力ファイルの型式は出来たファイルをエディタで眺めて頂ければ分かると思う。

 2番目のプログラムの名称はprg3.exeである。このプログラムはXYZで指定された色の配列データを読み込んでsRGBに変換して画面上に画を描くものである。変換規則についてはhttp://www.srgb.com/を参照されたい。

 画面表示のプログラムは

という安直なもので、ファイル名を指定して読み込み、横幅を適当に指定する(最大2000)。ファイルは、1行目がコメント、2行目がデータポイント数、3行目以降はデータで、各行「リタデーション値,X値,Y値,Z値」となっている。Data Pointはファイルから勝手に読み込む。妙にカンマが入っているとここの値が真っ当にならない。Max Widthは表示の細かさを指定する。1とかにすると、全画面が1色になる。w/hは色彩画面の縦横比。ファイルを読むとgoボタンが出るので押すと、全画面に

こんなのが出現する。あとは、画面キャプチャーソフトで必要なところを切り取って使う。(ファイルに落ちないのは、どうやっていいか分からなかったため。)

ソフトの概略説明が終わったところで、少し計算結果をながめることにしよう。

まずは、昔の干渉色図表と、今回の干渉色図表の色調の比較

上は昔の干渉色図表から切り出したもの。下は今回計算したものである。昔のものに比較して今回のものの方が2次以降のコントラストが鮮やかである。また、1次の鋭敏色あたりの変化も再現がよいように思う。γ値の違いの他に、XYZからRGBに直すときに、前回は変換後の最小値(マイナス)と最大値(1以上)を0から1に割り振っているけれど、sRGB変換規則ではマイナスは0に1を越えたものは1にしている。この大胆な扱いの方がよいということなのだろう。

さて、異常干渉色図表に話を移す前に、光源の影響を見ておこう。

上が、波長依存性のない平らな分布、下がD65光源を用いたものである。1/4λあたりの色調がD65の方がニュートラルに近い。ただ、大きな印象の違いはなさそうである。

いよいよ異常干渉色である。異常干渉色とは屈折率の分散のため干渉色図表の色調が異なっているもののことを言う。実際に、水晶、K15(5CB)、MBBAの屈折率分散を入れた干渉色図表(0~2000nm)をならべてみよう。光源はいずれもD65で計算している。

水晶

上が分散なし、下が水晶である。水晶は紫外まで透明なので分散はすくなく大きな変化は見えない。通常の干渉色図表で十分に対応できる。

K15(5CB)(屈折率の分散は、「山口留美子、佐藤進, "ネマチック液晶における屈折率分散特性", 電子情報通信学会論文誌 C Vol. J71-C, No.9, PP.1241-1247(1988)」に掲載されているコーシーの分散式の係数をもとに計算している。)

K15は可視領域で透明とはいえかなり分散が大きい。フラットな場合と比べると全体に左寄りになり、また高次の色調がぼやけている。こうなると、2次以降は通常の干渉色図表で厚さを判断するのは困難だろうという気になる。

MBBA(こちらの分散も、上記の山口、佐藤の論文のデータを用いている。)

一番上がフラットな分散。2番目が単純にMBBAの分散で計算したものである。実は、MBBAは400nmあたりより単波長に吸収があるので、実際の干渉色はその吸収も含めた色合いになる。そこまで含めて(光源にMBBAの吸収をかけた)計算したのが3番目である(4番目は参考にK15を再掲した)。人間の目の感度が400nmあたりより単波長では悪いのを反映して差はほとんどない。いずれにせよ、MBBAにおいても通常の干渉色図表が使えるのは鋭敏色の少し先までという感じである。

TOP私家版実験講座 - 異常干渉色図表