Main Content

deconvreg

正則化フィルターを使用したイメージのブレ除去

説明

J = deconvreg(I,psf) は正則化フィルター アルゴリズムを使用してイメージ I を逆畳み込みし、ブレ除去イメージ J を返します。ここでは、実際のイメージと点像分布関数 (PSF) psf が畳み込まれ、さらに場合によってはノイズが付加されることで、イメージ I が作成されたものと仮定します。このアルゴリズムは、イメージの平滑化要件に基づいて推定イメージと実際のイメージの間で最小二乗誤差を使用するという点で制約付きの最適化です。

J = deconvreg(I,psf,np) は、加法性ノイズ パワー np を指定します。

J = deconvreg(I,psf,np,lrange) は、最適解を探索する範囲 lrange を指定します。このアルゴリズムは最適なラグランジュ乗数 lagralrange の範囲内で検索します。

J = deconvreg(I,psf,np,lrange,regop) では、正則化演算子 regop を使用して逆畳み込みを制約します。既定の正則化演算子は、イメージの平滑化の度合いを維持するためのラプラス演算子です。

[J,lagra] = deconvreg(___) は、復元されたイメージ J だけでなく、ラグランジュ乗数 lagra の値も出力します。

すべて折りたたむ

サンプル イメージを作成します。

I = checkerboard(8);

PSF を作成し、それを使用して入力イメージにブレとノイズを加えたバージョンを作成します。

PSF = fspecial('gaussian',7,10);
V = .01;
BlurredNoisy = imnoise(imfilter(I,PSF),'gaussian',0,V);
NOISEPOWER = V*prod(size(I));

イメージのブレを除去します。

[J LAGRA] = deconvreg(BlurredNoisy,PSF,NOISEPOWER);

さまざまなイメージのバージョンを表示します。

subplot(221); imshow(BlurredNoisy);
title('A = Blurred and Noisy');
subplot(222); imshow(J);
title('[J LAGRA] = deconvreg(A,PSF,NP)');
subplot(223); imshow(deconvreg(BlurredNoisy,PSF,[],LAGRA/10));
title('deconvreg(A,PSF,[],0.1*LAGRA)');
subplot(224); imshow(deconvreg(BlurredNoisy,PSF,[],LAGRA*10));
title('deconvreg(A,PSF,[],10*LAGRA)');

Figure contains 4 axes objects. Axes object 1 with title A = Blurred and Noisy contains an object of type image. Axes object 2 with title [J LAGRA] = deconvreg(A,PSF,NP) contains an object of type image. Axes object 3 with title deconvreg(A,PSF,[],0.1*LAGRA) contains an object of type image. Axes object 4 with title deconvreg(A,PSF,[],10*LAGRA) contains an object of type image.

入力引数

すべて折りたたむ

不鮮明なイメージ。任意の次元の数値配列として指定します。

データ型: single | double | int16 | uint8 | uint16

PSF。数値配列として指定します。

データ型: double

ノイズ パワー。数値スカラーとして指定します。

データ型: double

探索範囲。数値スカラーまたは 2 要素数値ベクトルとして指定されます。lrange がスカラーの場合、アルゴリズムでは lagralrange と等しいと仮定します。lagra を指定した場合、関数は np の値を無視します。

データ型: double

正則化演算子。数値配列として指定します。regop 配列の次元はイメージ I の次元を超えてはなりません。つまり、大きさが 1 でないすべての次元は psf の大きさが 1 でない次元と対応していなければなりません。

データ型: double

出力引数

すべて折りたたむ

ブレ除去イメージ。数値配列として返されます。JI と同じデータ型を持っています。

ラグランジュ乗数。数値スカラーとして返されます。

ヒント

  • 出力イメージ J は、アルゴリズムで使用されている離散フーリエ変換に起因するリンギングを示すことがあります。リンギングを軽減するには、deconvreg を呼び出す前に I = edgetaper(I,psf) を使用してください。

参照

[1] Gonzalez, R. C., and R. E. Woods. Digital Image Processing. Addison-Wesley Publishing Company, Inc., 1992.

バージョン履歴

R2006a より前に導入