Main Content

イメージのブレ除去

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

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

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

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

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

g

ブレを含むイメージ

H

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

f

元の真のイメージ

メモ

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

n

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

このモデルをベースに、ブレ除去の基本的な作業は、歪みを正確に表現している 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");

A clear RGB image.

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

The image with simulated motion blur.

ブレ除去の関数

ツールボックスには、下記のように複雑さの順に 4 つのブレ除去関数があります。すべての関数は、基本的な引数として、PSF とブレを含んでいるイメージを使います。

deconvwnr

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

deconvreg

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

deconvlucy

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

deconvblind

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

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

  • ブレ除去は反復的処理です。限られたユーザーの情報を基に、元の絵の最適近似を得るまでブレ除去作業を複数回、各反復でブレ除去関数に指定するパラメーターを変化させながら繰り返すことが必要な場合があります。この作業の中で、新しく見えてくる形状が元の場面の特徴なのか、ブレ除去の過程における単なる偽像 (アーティファクト) なのか、非常に多くの判断を行わなければなりません。

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

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