撮影と画像処理_5:鮮明な仕上がり(2)

  • English (United States)
  • 日本語

鮮明な仕上がりを求めて

ゾーンプレートの作る回折像はピンホールの作る像に比べて遥かにシャープであるにもかかわらず、実際に撮影された写真はピンホール写真と比べてもソフトでぼんやりしたものになります。これはゾーンプレート特有の背景光によるものなので、写真全体の明るさのレベルを一様に下げて背景光の効果を減らすことでよりシャープな写真を得る可能性があります。このことについては既に書きました。この方法は光の条件によってはかなり効果があることがわかりましたが、一般に、背景光は画面全体で一様ではありませんからいつもこの方法がうまくいくとは限りません。一番良いのは、背景光の寄与そのものを引き去ってしまうことです。そんなことができるかと思うかもしれませんが、これに近いことは可能です。

背景光の源

そもそも、ゾーンプレートによって像面に投影される光の像とは何であるかを考えてみましょう。これは、回折光の像と回折されずに直進してきた光(非回折光、0次回折光:直進光と呼んでおきます)の像が中心になっている筈です。回折光の像は、これまでの記述で「ゾーンプレートの像」と言ってきた像のことです。ゾーンプレートで像ができる過程の説明を見るとゾーンプレートに入射する光全てがこの「ゾーンプレートの像」である回折像を作るような印象を受けるかもしれませんが、主焦点(1次回折光による焦点)に向かう回折光以外にも回折光はありますし、実際は回折像ができるためには、ピントが合っている事の他にも、入射光が可干渉性(coherency)の条件を満たしている事が必要です。なお、可干渉生の問題はゾーンプレート写真の鮮明さを議論する上で重要ですが、この議論はかなり専門的になるので、ここではこれ以上考えないことにします。残念ながら、シャープな像を作る1次回折光の量は多いとは言えません。とにかく、1次回折光以外の光の量によって像のシャープさが支配されていて、この中でも直進光は量も多く重要です(「撮影と画像処理_3」図1参照)。

ところで、直進光はゾーンプレートの透明部分をまっすぐ通ってきた光ですから、その像はゾーンプレートの最外ゾーンの外側の円の半径と同じ半径を持つピンホールを通ってきた光による像と同じであると言うことができます。もっとも、そのような巨大ピンホールの面積は透明ゾーンの面積と不透明ゾーンの面積を加えあわせた面積で、これはゾーンプレートにおいて直進光が通ってくる面積の2倍になります。従って、ゾーンプレートを通ってくる直進光の量は同じ半径のピンホールを通ってくる直進光の量の半分になります。要するに、ゾーンプレートによって、像面には、同じ被写体の、回折光による像とピンホール像(光量は約1/2)の二つが投影されることになります。この時のピンホールの半径は最適ピンホール半径に比べて極めて大きくなります。例えば、あとで示す例では、光の波長550 nm、焦点距離200 mm、ゾーン数29として設計したフレネル・ゾーンプレートを用いて実験していますが、この条件ではゾーンプレートの半径は1.8 mmです。これに対して像面までの距離が200 mmであるようなピンホール・カメラの最適ピンホールの半径は0.33 mmとなります。最適ピンホール半径の、実に、5.5倍もあるピンホールによって像が作られていることになります。このために、ゾーンプレートを通ってきた直進光によるピンホール像は、同じ「被写体像」とは認められないほどに極めてぼやけた像となります。ゾーンプレートにおける背景光とは、大部分が、このピンホール像であると考えることができます。なお、円環状の透明ゾーンを通ってきた直進光は全て合わせても円形のピンホールを通ってきた光と分布が異なりますが、像面に到達するまでには広がるために、その差はあまり気にする必要がないものと考えられます。

背景光を取り除く方法

背景光除去法として画面全体から一定の「明るさ」を取り除くことを既に書きましたが、背景光がピンホールによる像であることがわかったので、この像による光量を引き去ることができればより厳密に背景光を取り除くことができます。このためには、ゾーンプレートのパターンと同じ大きさのピンホールを作り、このピンホールを用いて撮影した画像をゾーンプレートにおける背景光と見なして用いれば良い訳です。ピンホール写真とゾーンプレート写真を合計2枚撮影して重ね合わせる訳ですから、これらの写真は全く同じ位置で、しかも時間的にもできるだけ近く撮影する必要があります。そこで、ピンホール撮影用の装置にゾーンプレート・パターンのついたプレートを付けてゾーンプレート写真を撮影し、直ちにそのプレートを引き抜いてピンホール写真の撮影ができるような装置を作りました(図1)。最初、図1(a) のようなゾーンプレートをピンホールの前に挿入して(図1(b) )ゾーンプレート写真の撮影を行い、直ちにこのゾーンプレートを引き抜いて大きな半径のピンホールにして、これで背景光の撮影を行います。

図1 背景光除去用のピンホールとゾーンプレートからなる撮影装置
 (a)図はゾーンプレートを引き抜いたところ、(b)図はゾーンプレートとピンホールを重ねてカメラに装着したものを表す。

画像処理ソフトウエア

ここではデジタルカメラの画像を扱っているのでフィルムカメラの場合とは異なり、このように撮影した2枚の写真から背景光を取り除いたゾーンプレート写真を作ることは簡単にできます。適当な画像処理ソフトを用いて画素毎及びRGBチャンネル毎のデータを読み取って計算処理してもよいのですが、この操作をまとめて写真全体を対象として各画素、各チャンネルのデータの演算を行えるようにしたソフトウエアも出回っています。ここではPixelMathあるいはImageJを用いた処理について記します。因みにこれらはフリーソフトウエアです。

画像処理

ゾーンプレートを用いて撮影した写真を Image1、対応する巨大ピンホールを用いて撮影した写真をImage2 とします。そこで、 Image=Image1 – Image2 という計算をすれば、ゾーンプレート写真からピンホール写真を引き去った写真Image ができあがります。この時、上に書いたように、Image2の明るさは背景光の2倍になっていますから、実際には、Image=Image1 – 0.5 x Image2 とする必要があります。ここで注意しなければならないのは、Image、Image1、Image2 の数値の範囲は0から255までの整数であることです。演算の結果、負の値になればそれは0に置き換えられますし、255を超えた値になれば255に置き換えられます。また、実際にImage2の写真を撮影するためのピンホールの大きさをゾーンプレートの大きさに正確に合わせることは不可能ですから、Image2に掛ける倍率も適切に調節する必要があります。したがって、この操作をまとめると、a, b, c の値を適切に与えて、

$$ Image = a (Image1 – b \times Image2) + c $$

とすれば良いことがわかります。下に記した実験例では、\(a=1.0 \sim 2.0\)、\(b=0.3 \sim 0.5\)、\(c=0\) の値を選ぶことでかなり良い結果が得られています。PixelMath を用いればこの演算を1ステップで行えますが、PixelMath のCalculator という機能を使ってこの計算を行った結果を保存しようとするときに写真のサイズに比較的小さな上限があるようです。一方、ImageJの場合サイズの制限は実用上ありませんが、ImageJの本体にはこのような演算をする機能がありませんのでImage Calculator Plus というPluginをあらかじめインストールしておく必要があります。また、上の演算を1ステップで行うこともできないので2ステップに分けて行う必要があります。なお、上で用いたImage1Image2という変数として、ImageJおよびPixelMathでは、それぞれ、i1i2 および Source1Source2 という変数が使われています。同様の機能を持つ他の画像処理ソフトウエアについては確認しておりませんが、比較的基本的な機能ですから、他にも利用可能なソフトウエアがあるものと思います。また、より基本的な画像処理ソフトを使ってこの機能を持つプログラムを組み立てることもそれほど難しくはありません。

図2の写真は、ここで説明した方法で背景光を除いた写真です。まだ改善の余地がありますが、いずれの写真からも背景光が除かれてシャープになっている様子が分かります。また、非常に強い点光源の場合には、当然のことながら、リング状の背景光が残ることもわかります(飾り皿の写真)。いずれの写真も、ゾーンプレートは焦点距離200 mm、ゾーン数29で半径は1.8 mmで、大ピンホールの半径は1.8 mmより少し大きいものを使っています。

図2 ゾーンプレート写真から大ピンホールによる像を差し引く背景光除去
 左の列はオリジナル.ゾーンプレート写真、中の列はゾーンプレートと同じ大きさのピンホールによる像、右の列は背景光を除去した結果の写真