ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ブレ除去について

ブレの原因

イメージのブレ、つまり劣化は多くの要因から生じます。

  • カメラを使って、イメージを取り込む過程での移動、または長い露光時間を使う場合の被写体の移動。

  • ピンぼけの光学系、広角レンズの使用、大気の乱れ、または、露光時間が短いため、取り込んだフォトン数が少ない。

  • 共焦点顕微鏡での散乱光の歪み。

ブレ除去モデル

ブレを含むイメージ、または、劣化したイメージは、g = Hf + n という方程式で近似的に記述されます。

g

ブレを含むイメージ

H

歪み演算子。"点像分布関数" (PSF) とも呼ばれます。空間領域で、PSF は、光学システムが光源のブレの度合いを表します。PSF は、光学伝達関数 (OTF) の逆フーリエ変換です。周波数領域で、OTF は、線形、位置不変システムへのインパルスの応答です。OTF は、点像分布関数 (PSF) のフーリエ変換です。歪み演算子は、イメージでたたみ込みを行ったときに、歪みを生じます。点像分布関数による歪みは、典型的な歪みの 1 つです。

f

元の真のイメージ

n

イメージの取得時に発生し、イメージを乱す加法性ノイズ

    メモ:   イメージ f は、実際には存在しません。このイメージは、理想的なイメージ取得条件の場合に得られるものを意味しています。

PSF の重要性

このモデルをベースに、ブレ除去の基本的な作業は、歪みを正確に表現している PSF とブレているイメージとを分離することです。デコンボリューションとは、コンボリューションの効果を元に戻す処理です。

    メモ:   ブレ除去されたイメージの画質は、PSF の情報によって決まります。

説明のために、この例では鮮明なイメージを使用し、PSF でそのイメージをたたみ込むことで故意にブレを追加します。この例では、関数 fspecial を使用し、ブレの長さをピクセル単位で指定 (LEN=31) すると共に、ブレの角度を度数で指定 (THETA=11) して、動きのブレのシミュレーションを行う PSF を作成します。PSF が作成されたら、関数 imfilter を使用して元のイメージ I を使用して PSF をコンボリューションし、ブレを含むイメージ Blurred を作成します (このプロセスの逆がブレ除去であることを示すために、同じイメージを使います。「ウィーナー フィルターを使用したブレ除去」を参照)。

I = imread('peppers.png');
I = I(60+[1:256],222+[1:256],:); % crop the image
figure; imshow(I); title('Original Image');

LEN = 31;
THETA = 11;
PSF = fspecial('motion',LEN,THETA); % create PSF
Blurred = imfilter(I,PSF,'circular','conv');
figure; imshow(Blurred); title('Blurred Image');

ブレ除去の関数

ツールボックスは、実数/複素数の順番に 4 つのブレ除去関数を用意しています。すべての関数は、基本的な引数として、PSF とブレを含んでいるイメージを使います。

deconvwnr

最小二乗解を求めます。ブレ除去中に、できるだけノイズを小さくするために、ノイズに関するいくつかの情報を与えることができます。詳細は、「ウィーナー フィルターを使用したブレ除去」を参照してください。

deconvreg

制約付きの最小二乗解を求めます。ここで、出力イメージに制約を設定しています(平滑化の必要条件は、既定です)。ブレ除去中に、できるだけノイズを小さくするために、ノイズに関するいくつかの情報を与えることができます。詳細は、「正則化フィルターを使用したブレ除去」を参照してください。

deconvlucy

高速の、減衰付きルーシー・リチャードソン アルゴリズムを実行します。この関数は、最適化手法とポアソン統計量を使って、反復的に計算を行うものです。破損したイメージの中の加法性ノイズに関する情報を与える必要はありません。詳細は、「ルーシー・リチャードソン アルゴリズムを使用したブレ除去」を参照してください。

deconvblind

ブラインド デコンボリューション アルゴリズムを実行します。このアルゴリズムは、PSF の知識なしにブレ除去を行うものです。PSF の初期推定値を引数として渡します。関数 deconvblind は、復元されたイメージに加え、復元された PSF も返します。この実装では、関数 deconvlucy と同じ減衰および反復モデルを使用します。詳細は、「ブラインド デコンボリューション アルゴリズムを使用したブレ除去」を参照してください。

ブレ除去の関数を使用するときには、以下を知っておいてください。

  • ブレ除去は、反復的処理です。限られたユーザーの情報を基に、元の絵の最適近似を得るまで、各反復で、ブレ除去関数にパラメーターを変化させながら、ブレ除去作業を複数回繰り返す必要がある場合があります。この作業の中で、新しく見えてくる形状が、元の絵の形状なのか、人工的に作成されたものかに関する多くの判断を行わなければなりません。

  • ブレ除去イメージの中で "リンギング" を避けるために、ブレ除去関数に渡す前に、関数 edgetaper を使ってイメージの前処理を行うことができます。詳細は、「ブレ除去されたイメージ内のリンギングの回避」を参照してください。

  • 独自のブレ除去関数の作成方法の詳細は、「ブレ除去に関するユーザー独自の関数の作成」を参照してください。

この情報は役に立ちましたか?