ドキュメンテーション

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

deconvreg

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

構文

J = deconvreg(I, PSF)
J = deconvreg(I, PSF, NOISEPOWER)
J = deconvreg(I, PSF, NOISEPOWER, LRANGE)
J = deconvreg(I, PSF, NOISEPOWER, LRANGE, REGOP)
[J, LAGRA] = deconvreg(I, PSF,...)

説明

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

I は N 次元配列になります。

J = deconvreg(I, PSF, NOISEPOWER) では、NOISEPOWER は加法性ノイズの強度です。既定値は 0 です。

J = deconvreg(I, PSF, NOISEPOWER, LRANGE) では、LRANGE は最適解の探索範囲を指定するベクトルです。このアルゴリズムは最適な Lagrange 乗数 LAGRALRANGE の範囲内で検索します。LRANGE がスカラーの場合、アルゴリズムでは LAGRA が指定され、かつ LRANGE と等しいと仮定し、NP 値は無視されます。既定の範囲は 1e-9 ~ 1e9 です。

J = deconvreg(I, PSF, NOISEPOWER, LRANGE, REGOP) では、REGOP はデコンボリューションを制約するための正則化演算子です。既定の正則化演算子は、イメージの平滑度を維持するためのラプラス演算子です。REGOP 配列の次元がイメージの次元を超えることはできません。つまり、大きさが 1 でないすべての次元は PSF の大きさが 1 でない次元と対応していなければなりません。

[J, LAGRA] = deconvreg(I, PSF,...) は、復元されたイメージ J だけでなく Lagrange 乗数 LAGRA の値も出力します。

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

クラス サポート

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

I = checkerboard(8);
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)');

R2006a より前に導入

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