ドキュメンテーション

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

deconvwnr

ウィーナー フィルターを使用したイメージのブレ除去

構文

J = deconvwnr(I,PSF,NSR)
J = deconvwnr(I,PSF,NCORR,ICORR)

説明

J = deconvwnr(I,PSF,NSR) はウィーナー フィルター アルゴリズムを使用してイメージ I を分解し、ブレが除去されたイメージ J を返します。イメージ I は N 次元の配列です。PSFI のたたみ込みに使用された点像分布関数です。NSR は加法性ノイズの N/S 比です。NSR にはスカラーを指定するか、I と同じサイズのスペクトル領域配列を指定できます。NSR に 0 を指定することは、理想的な逆フィルターを作成することに相当します。

このアルゴリズムは、推定イメージと実際のイメージの間で最小平均二乗誤差を使用するという点で最適です。

J = deconvwnr(I,PSF,NCORR,ICORR) はイメージ I を分解します。ここで、NCORR はノイズの自己相関関数、ICORR は元のイメージの自己相関関数です。NCORRICORR には、元のイメージを上回らない任意のサイズまたは次元を指定できます。NCORR または ICORR が N 次元の配列の場合、その値は各次元内の自己相関と対応します。NCORR または ICORR がベクトルであり、PSF もベクトルである場合、値は最初の次元に含まれている自己相関関数を表します。PSF が配列の場合、1 次元の自己相関関数は PSF のすべての大きさが 1 でない次元に対して対称に外挿されます。NCORR または ICORR がスカラーの場合、この値はイメージのノイズの強度を表します。

メモ:

出力イメージ J は、アルゴリズムで使用されている離散フーリエ変換に起因するリンギングを示すことがあります。リンギングを軽減するには、

I = edgetaper(I,PSF)
を使用してから deconvwnr を呼び出してください。

クラス サポート

Iuint8uint16int16single または double のいずれかのクラスになります。その他の入力のクラスは double であることが必要です。J のクラスは I と同じです。

すべて折りたたむ

イメージをワークスペースに読み取って表示します。

I = im2double(imread('cameraman.tif'));
imshow(I);
title('Original Image (courtesy of MIT)');

動きによるブレのシミュレーションを行います。

LEN = 21;
THETA = 11;
PSF = fspecial('motion', LEN, THETA);
blurred = imfilter(I, PSF, 'conv', 'circular');
figure, imshow(blurred)

加法性ノイズのシミュレーションを行います。

noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred, 'gaussian', ...
                        noise_mean, noise_var);
figure, imshow(blurred_noisy)
title('Simulate Blur and Noise')

ノイズなしを仮定して復元を試みます。

estimated_nsr = 0;
wnr2 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
figure, imshow(wnr2)
title('Restoration of Blurred, Noisy Image Using NSR = 0')

S/N 比の推定を修正して復元を試みます。

estimated_nsr = noise_var / var(I(:));
wnr3 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
figure, imshow(wnr3)
title('Restoration of Blurred, Noisy Image Using Estimated NSR');

参考文献

"Digital Image Processing", R. C. Gonzalez & R. E. Woods, Addison-Wesley Publishing Company, Inc., 1992.

R2006a より前に導入

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