fc2ブログ

カメラの波長感度3

手作り分光器を用いてカメラの波長感度分布を測定しているのですが、測定するたびに形が変化してしまいます。いろいろと考えてみたのですが、どうもカメラによる光の検出の直線性が悪いのではと思うようになりました。

そこで、シャッター速度を変えながら、スペクトルを測定して直線性を調べてみようと思い立ちました。光源には60W白熱電球を用い、透過型回折格子を用いた分光器でスペクトルを表示させます。



これをカメラ(Nikon D70+Micro Nikkor 55mm)で撮影します。条件は、F8、ISO200です。シャッター速度は1/100sから2sまで変えました。できるだけ対数的に変化するように、1/100, 1/50, 1/20, 1/10, 1/5, 1/2, 1, 2sというように変化させました。その結果をRAWデータとして保存し、ViewNXというNikonの提供しているソフトで16bit TIFFファイルに変換し、さらに、ImageJでR、G、B別々にGray valueを求めました。その結果は驚くようなものでした。



縦軸はGray valueを対数でプロットしています。16bitなので縦軸の最高値は65536です。横軸は殺菌灯の水銀発光線で補正した波長です。シャッター速度を対数的に変化させたので、本来ならば、線がほぼ等間隔に並ぶはずでした。Rでいうと波長が600nm以上の波長ではそのように見えます。強くなると飽和してしまうのは仕方がないですが。しかし、500nm以下を見ると、逆に変な成分が途中から増加し、形も変化していきます。Gでも500-600nmの範囲ではまずまずですが、それ以外は使い物になりません。Bも520nm以上はまったく駄目です。カメラがこんな風になっているなんて本当にびっくりです。

カメラの波長感度分布の測定の際、再現性がなかったのは、おそらく、こんな非線形な応答のせいでしょう。結局、まずまず直線性があって使える波長領域は、RでもGでもBでも非常に限られていることになります。そこで、それらの領域だけを集めてみたのが次の図です。



この図では、Rは585nm以上の波長領域、Gは500-585nm、Bは500nm以下の波長だけにして合成したものです。全体に線が等間隔になるようになり、まずまず使えそうです。GとRの境は585nmでほぼ決まってしまうのですが、BとGの境は480-520nmの間であれば大丈夫です。こんな厄介なことを毎回やれば、可視光全体で光強度の測定ができることになります。

それでも良く見ると、線は等間隔というわけでもないので、やはり、カメラで光の強さを定量的に測定するのは難しいみたいです。つまり、可視光全体にわたって光強度どうしの引き算や割り算が伴うような測定(例えば、吸収スペクトルや反射スペクトルの測定など)は難しいというわけです。うーむ、残念!

スポンサーサイト



カメラの波長感度 つづき

先日から、手作り分光器でカメラの波長感度分布を測定していたのですが、そのときは、白熱電球を2500Kの黒体放射として解析をしていました。ここがちょっと不安だったので、温度の違うハロゲンランプを使って確かめる実験をしてみました。

用いたのは、透過型回折格子を使った手作り分光器とNikon D70+Micro Nikkor 55mmです。光源として、60W Toshiba電球と10W 三菱ハロゲンランプです。スペクトルをカメラで撮影して、それをRAWデータとして記録し、8bit TIFFに変換し、ImageJで解析しました。



この図は白熱電球とハロゲンランプで求めたスペクトルです。縦軸は強度ですが、適当にスケールしてあります。変な形になっているのはカメラの波長感度分布のためです。ハロゲンランプの方が色温度が高いので青い部分(波長の短い部分)の強度が強くなっていることが分かります。

もし、この2つの曲線が異なる温度の黒体放射スペクトルで表されるのなら、この2つのスペクトルの強度比を計算すると、それは、異なる温度での黒体放射スペクトルの比になるはずです。



それを示したのがこの図です。赤い線は2500Kと3000Kの黒体放射の強度比を示したものです。青い線は白熱電球のスペクトルをハロゲンランプのスペクトルで割ったものです。本当はだいたい一致してくれるとよいのですが、とくに青い方(短波長側)のずれが大きくなっています。黒体放射の温度は少しぐらい変えても傾きがちょっと変わる程度であまり大きく変化しません。どうやら測定が上手くいっていないようです。


実際に、上のデータを用いてカメラの波長感度分布を計算しても、450nm付近でかなりのずれが生じています。3回ほど同じ実験を繰り返したのですが、そのたびに形が変化してしまいました。どうやら照明が一様でないのが問題のようです。

ちょっと疲れたので、気晴らしに、空のスペクトルを測定してみました。



カメラの波長感度分布を補正していないので変な形のスペクトルですが、上の写真では何本か暗線が見られます。これは、いわゆるフラウンホーファ線です。太陽の光が太陽上空の大気や地球の大気で吸収された結果、暗線になるのです。分光器の前に殺菌灯を置いて、水銀の波長から横軸を決め、暗線の位置を求めてみると、上の図で示すように暗線の同定ができました。波長の誤差は1nmくらいでした。手作り分光器でも結構測定できるものですね。

カメラの分光感度を測定する

この間から、手作り分光器と一眼レフカメラスペクトル測定をしてきました材料費わずか数十円で、結構、簡単にスペクトルの測定ができるのでお勧めです。この度、「廊下のむし探検」の付録というホームページを作りました。分光器の作り方はそこに載せましたので、参考にしてください。

さて、今度はこの分光器を使って、カメラの分光感度測ってみようと思いました。白熱電球の光を分光し、それを撮影してスペクトルに直し、プランクの輻射公式から計算した黒体輻射スペクトルとの比を取るだけという簡単な方法です。

先日、この方法を使って、あまり考えずに計算してたのですが、ネットで調べてみると、最近、デジカメを使って同じことをしようという論文がいくつも出ていることが分かりました。これは、デジカメが普及してき、カメラで撮影して色を決める(測色)という機会が増えたことによります。色を決めるときには、分光感度曲線が必要になるからす。例えば、オーロラの色、大気汚染など環境評価、植物の生育具合などの農業分野などに実際に使われているようです

論文を読むと、カメラで撮影したデータがjpg形式の画像ファイルにまでには、ホワイトバランス、ガンマ補正などのいろいろな処理をしていることが分かりました。どれだけ変わるかというのを確かめるために手作り分光器で白熱電球の光をスペクトルして、これを撮影するときに、
ホワイトバランス設定を手動にし、いろいろな色温度に設定して撮影してみました。その結果がこれです。



横に筋が出ているのはスリットが平行にできていないからです
色温度が低いと青が強調され、温度が高くなるにつれて赤が相対的に強くなっています。因みに、Nikon d90のカタログによると、
晴天       5200K
曇天       6000K
晴天日陰    8000K
フラッシュ    5400K
電球       3000K
白色蛍光灯   4200K
昼光色蛍光灯 6500K
昼白色蛍光灯 5000K
電球色蛍光灯 3000K
となっています。通常、ホワイトバランスはAutoにして撮影しているのですが、外界の様子これだけ色温度が自動的に変化し、従って、色変化するのです。

上の写真をスペクトルで表してみると、次のようになります。



色温度をと右側の赤い部分は増大し、逆に、左側の青い部分は減少します。青い部分はある程度色温度が高くなると一定になっています。それに対して、中央の緑の部分は全く変化していません。どうやら、緑の成分は一定にして、赤と青の成分の割合を変えて対応しているようです。

そこで、何も処理をしていないRAWデータを使ってみることにしました。カメラのメニュー画面で画質モードをRAWにします。Nikonの場合は、RAWデータは拡張子が.NEFという名前になり、12bitのデータとしてセーブされます。

このファイルを見るために、Nikonが出しているViewNXというフリーソフトを用いました。さらに、ファイルをサムネイル表示させるために、Microsoftカメラ コーデック パックを入れました。ただし、RAWデータそのものはImageJでは読めないので、ViewNXで16bit tiffデータに変換します。

ImageJで読みこんだ後、COLOR SPLIT CHANNELSで3色に分離し、それぞれのデータの領域を決めてからPLOT PROFILEGray Valueのグラフにします。これを数字で表したリストとしてsaveして、EXCELで読み込みます。さらに、EXCEL上でプランクの輻射公式を使って2500Kの体輻射スペクトルを計算し実測の値との比を取って、分光感度曲線を計算しました。ちょっとややこしそうですが、一度、EXCELで作ってしまうと、そこにデータをコピーするだけですぐにグラフることができますその結果が次のグラフです。






上がNIKON D90、下がD70の分光感度曲線です。2つともまあまあ似ています。このデータが合っているのかどうかは全く分かりませんが、論文(Sigernes et al. Opt. Express 17, 20211 (2009))などに出ているNikonやCanonのカメラの分光感度曲線とはまあ似ていないことはないという感じです。 D90では短波長側は425nm、長波長側は680nmで明瞭なカットオフがありますが、D70ではそんなものはありません。これがD70で紫外撮影ができる理由でしょう。赤い成分が青の部分にも結構入ってくるので、何となく、XYZ表色系での等色関数に似ているような気がします。

手作り分光器の巻 スリットが少し改善しました

先日来、マニアックなブログを出しているのですが、今日は少しだけ進展しました。

透過型回折格子フィルムを使った分光器に一眼レフのカメラを取り付けて撮影しています。スリットがうまく作れなくて、スペクトルがみっともなかったのですが、厚めのアルミホイル(厚さ15ミクロン)にカッターナイフで切り込みを入れたら結構綺麗なスリットになりました。

今日は、嬉しくていろいろなものを撮影してみました。

殺菌灯、蛍光灯、ブラックライト、UV-LED、白熱電球などの光源だけでなく、写真用光沢紙をブラックライトで照らして出る発光についても撮影してみました。光沢紙は紫外線照射で青く光ります。

面白かったのはブラックライトです。私は殺菌灯の可視光の部分だけをカットしたものだと思っていたのですが、ブラックライトにはそれなりの歴史とポリシーがあるようです。まず、放電管のガラスにはウッドガラスという酸化ニッケルを含んだバリウム-ナトリウム-シリケートガラスを用いていて、320-400nmの間だけ光を通すようになっています。さらに、SrB4O7F:Eu2+やSrB4O7:Eu2+などの蛍光体が塗られていて、発光のピークが350-360nm付近になるようにしてあるのです。実際、手作り分光器で測ってみると、水銀の発光線と共にブロードな発光も見られました

これらの写真から、また、フリーソフトのImageJを用いてgray valueを求めてみました。これまでグレイスケール強度と書いていたのですが、通常、グレイスケール強度というと、視感度を考慮に入れて、RGBに重みをつけて足し合わせていることが分かりました。ImageJではRGBを均等に足しているので、ここでは、gray valueと書いておくことにします。





ブラックライトは鋭い水銀の輝線と共に、蛍光体による幅の広い発光が見られます。UV-LEDは水銀の輝線に比べるとかなり幅が広いことも分かりました。蛍光灯や白熱電球がいびつな形をしているのはカメラの検出特性のためだと思われます。

このいびつな形をなんとか補正したいと思い、白熱電球が2500Kの温度の黒体放射であると仮定して、プランクの輻射公式を用いてスペクトルを計算してみました。



左上のA図で赤い線が計算結果です。本来、白熱電球は赤い線のようにならないといけないのですが、カメラの検出感度が波長によって異なるので、こんないびつな形になると仮定し、割り算をしてその補正曲線を計算しました。それがBです。この補正曲線を用いて、蛍光灯のスペクトルと光沢紙からの発光スペクトルを補正したものがCとDです。500nmの辺りの小さな山がまだ少し残っているのですが、ほぼ補正できた感じがします。650nm以上の近赤外はカメラに感度がないので、あまりあてにはならないようです。

だいたいうまくいったので、ムラサキシジミの紫外線反射も測ってみたのですが、暗くてまったく写りませんでした。明らかに感度不足です。明日は、スリットの広いものを作ってもう一度チャレンジしてみます。そのほかに、たくさんある蛾の標本をUV-LEDで照射してみると、ウスキツバメエダシャクなどの白っぽい蛾が蛍光を発しているようでした。これも明日測ってみようと思います。

分光器挑戦の続き

昨日は、手作り分光器と一眼レフカメラを使ってスペクトル測定の挑戦をしました。今日のテーマはカメラボディによる違いを見ることとグレイスケール強度の直線性を調べることです。

昨日はスリットがいい加減だったので、今日はカッターナイフで切り方を変えたり、いろいろとやってみました。結果はどれもこれも似たようなものでした。それで、スリット作りは諦めて、カメラボディをNikon D90とD70に変えて測定してみました。これは、D70だと紫外写真が撮れるのですが、D90では撮れないので、その違いを見てみようと思ったからです。



この写真は、殺菌灯のスペクトルを撮影したものです。輝線が途切れたり、太さが変わっているのは、例によってスリットのせいです。上はD90にMicro Nikkor 60mmを取り付けたもの、下は紫外写真を撮るときのセットで、D70にMicro Nikkor 55mmを取り付けたものです。ともに、ISO400でF8、20秒露出で撮影しました。D70では矢印で示した紫外の輝線が、はっきりと見えることが分かります。特に、右の矢印の輝線はD90では見えなかったものです。

この写真から適当なところを選んで、ImageJでグレイスケール強度を計算したものが次の図です。



この図から、D90では404nmのピークがやっと見える程度なのに、D70では404nmはかなり強く、さらに、365nmのピークまで見えていることが分かります。やはり、紫外が撮影できるのです。40Wの白熱電球でも同じ実験をしてみました。



形がいびつなのでなんとも言えないのですが、D70はあまり青を強調していないようです。また、D90では420nmに紫外カット、690nm付近に赤外カットが入っている感じですが、D70は紫外側も赤外側もだらだらと減少していくだけです。シャープカットのフィルターが入っていない分だけ、D70では辛うじて紫外撮影ができるのでしょう。

最後に、縦軸の直線性を調べてみました。これはどうやるかといえば、シャッター速度を変えながら撮影した写真のグレイスケール強度を調べるのです。殺菌灯の4つの輝線について行った結果が次の図です。



両対数グラフになっていますが、縦軸はImageJで計算したグレイスケール強度、横軸はシャッター速度です。斜めの線が比例関係を示しています。この図から、グレイスケール強度が100まではほぼシャッター速度に応じて強度は増えていますが、それ以上では飽和している様子が分かります。従って、反射率の計算のときのように、直線性を必要とするときには、グレイスケール強度が100以下になるようにしないといけないことが分かります。明日はいよいよ測定をしてみようと思います。

プロフィール

廊下のむし

Author:廊下のむし

カテゴリ
リンク
最新記事
最新コメント
カウンター
月別アーカイブ