Kameno external storage

由無し事をたまに綴るブログです。

APDレンズの効果を無料のスクリプトで

世の中にはapodization(アポダイゼーション, 以下APD)レンズというものが市販されています。例えば、Fujinon XF56mmF1.2 R APDは、APDでないXF56mmF1.2 Rに比べて価格が5万円ほど高いようです。このAPDの効果をスクリプトによる画像処理で模擬してみました。APDは情報を減らす操作ですので、撮影時に高価なAPDレンズを使わなくても、後処理で実現できます。

まずは実際にAPDスクリプトの効果を見てみましょう。



APD適用前:背景の玉ボケが、7枚羽根絞りによる7角形の形状をしています。


APD適用前:玉ボケのエッヂが滑らかになりました。


玉ボケの部分を切り出し、並べて比較してみます。

APDレンズとは

APDレンズは、apodizationのために絞り羽根の近くにAPDフィルターを入れたものです。。このAPDフィルターは光軸中心で透過率が最も高く、外縁ほど透過率を落とす同心円状のグラデーションがかかったフィルターです。

光学用語でapodizationとは、伝達関数を調整することで望ましい点源応答を得る設計のことを言います。例えば望遠鏡の開口面が一様な透過率を持つとき、星像の周囲には同心円状の回折リング電波望遠鏡ではサイドローブと呼ぶ)が現れます。開口面にテーパーをかけると、この邪魔な回折リングを低減できます。apodizationは分光計の周波数分解関数からサイドローブを低減するためにも用いられます。ただしapodizationは光の量を減らすので感度は低下しますし、分解能も悪くなります。

APDレンズの目的

さて、APDの本来の目的は回折リングを低減することなのですが、APDレンズの目的は違うようです。例にあげたFujinon APDレンズは焦点距離56mm, F1.2という仕様なので口径は47mmです。波長500 nmの可視光の分解能(回折限界)は2.6秒角です。これは焦点面で0.73 μmの大きさに相当します。Fujifim Xマウントカメラのセンサーはpixelの間隔が4.6 μmですから、回折リングを分解することはできません。APDによって点源応答を改善する効果は得られないのです。

ではなぜAPDフィルターを入れるかというと、このデジカメWatchの記事によれば、ピントのぼけた部分の像(ボケ味)を滑らかにするためだそうです。ピントがぼけた領域の像は、真の像に開口面の透過率分布をたたみ込んだものになります。明るい点光源がピンボケの場所にあると、玉ボケという開口面の形をしたボケ味が出ます。APDフィルターを使うと、玉ボケの輪郭を柔らかくする効果が得られます。

APDレンズの功罪

柔らかい輪郭の玉ボケを好む写真家にとっては、APDレンズは効果があります。しかしAPDフィルターは像の情報、特に空間周波数の高い成分を落としているので、解像度は低下します。通常のレンズとセンサーの組合せでは、センサーのpixel間隔が回折限界より粗いので解像度の低下は問題にならないとは言え、解像度を落とす操作のために割高なAPDレンズを使うのは、何だか後向きに思えます。
非APDの高解像度写真を撮っておき、滑らかな玉ボケを欲しいなら画像処理によって作ってもいいのではないでしょうか。

APDスクリプト

万人向けではありませんが、置いておきます。Rがインストールされている環境で、jpegライブラリとgridライブラリが必要です。元画像はjpegフォーマットにのみ対応しています。

  1. こちらのURL http://kamenoseiji.sakura.ne.jp/Scripts/APD.R からAPD.Rをダウンロードします。
  2. コマンドラインから Rscript APD.R [元画像ファイル名] と打ちます。
  3. 元画像ファイル名_APD.jpg というファイル名で出力されます。