ピントの合い具合を計測する

 FA用画像処理で、Z軸(ピント方向)が搭載されたカメラを使う場合、ピントを合わせる処理が必要です。 もちろん、オートフォーカスなどがあればよいのですが、特別な装備がなかったとしても複数の映像から ピントのあう位置を推測できるのではないかというのが、今回のテーマです。


オートフォーカス

 私が小さい頃、一眼レフにオートフォーカスなんて便利な機能は付いていませんでした。 (AEだって、出始めだった)それが今やオートフォーカスは当たり前の技術になっています。 多くのオートフォーカスは、赤外線・レーザーや超音波などを使って距離測定を行っているようです。 (他の方式もあると思います) 今回は、顕微鏡などマクロ撮影的な設備で、Z方向に移動できる機構を持った設備用にピントを合わせることを考えます。

ピントの合い具合

 同じ対象を撮影していて、ピントがあった画像と合っていない画像を比べれば、 1つ1つの輝度差(となりの画素との明るさの差)が短距離で変化するものが、よりピントがあっていると言えそうです。 (まあ、当たり前の話だと思います)  1ドット右に進むごとに10づつ輝度が変わる4ドットのエリアより、一発で40輝度変わる2ドットのエリアはクッキリしています。これを指数化すればよいので、何も考えず、

focus = (画素輝度 - 隣画素輝度)2乗

を画面全体で計算し、これをfocusindexとしています。 この数値、映像対象が変われば当然変化しますので、混在できないとか、あと動画に使用できないといった問題がありますが、 静止対象のピントを合わせる場合などには結構使えます。

ピント位置を追い込む

 上記focusindexをZ軸を少しづつ変化させながら求めると、正規分布のようなベルカーブを描きます。 今、Z0からZnの間にピントがあう位置があると仮定し、この区間を10分割なら10分割して、 Z軸を移動させながら画像を撮影、そのfocusindexを求めます。 すると、どこかの地点で最高値が求まるので、この前後2区間(3点)の範囲にピントがあう位置があるものとします。 これをまた10分割なりして、区間を狭めていき、最終的に、Z軸の分解能で再現できなくなるまで行えば、ピントのあう画像となります。

 問題点としては、縞模様などの場合、ベルカーブにある種の振動波のようなものが観測でき、正確に合わせられないことがあるということ。また、ピントの追い込み方が原始的で時間がかかることなどがあげられます。(当方では、キャリブレーションで使用したので、時間はあまり問題になりませんでした)


無作為研究所トップページに戻る

copyright(c)2007 by MUSAKUI-LABO