ドキュメンテーション

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

deconvlucy

ルーシー・リチャードソン アルゴリズムを使用したイメージのブレ除去

構文

J = deconvlucy(I, PSF)
J = deconvlucy(I, PSF, NUMIT)
J = deconvlucy(I, PSF, NUMIT, DAMPAR)
J = deconvlucy(I, PSF, NUMIT, DAMPAR, WEIGHT)
J = deconvlucy(I, PSF, NUMIT, DAMPAR, WEIGHT, READOUT)
J = deconvlucy(I, PSF, NUMIT, DAMPAR, WEIGHT, READOUT, SUBSMPL)

説明

J = deconvlucy(I, PSF) は、点像分布関数 PSF とのたたみ込みと加法性ノイズにより劣化しているイメージ I を復元します。このアルゴリズムは、ポアソン統計に従い、出力イメージ J が元のイメージ I のインスタンスになる確率を最大化することに基づいています。

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

deconvlucy では、復元を向上させるため、オプション パラメーターがサポートされています。[] をプレースホルダーとして使用すると、中間パラメーターの指定を省略できます。

J = deconvlucy(I, PSF, NUMIT) は、関数 deconvlucy によって実行される反復回数を指定します。この値を指定しない場合、既定の設定は 10 になります。

J = deconvlucy(I, PSF, NUMIT, DAMPAR) は、イメージ I からの出力イメージの偏差のしきい値をポアソン ノイズの標準偏差として指定します。この値より小さいと、減衰が生じます。元の値からの逸脱が DAMPAR 値を超えているピクセルの反復は抑制されます。これにより、これらのピクセルでのノイズの発生が抑えられ、それ以外の場所では必要なイメージの詳細が維持されます。既定値は 0 (減衰なし) です。

J = deconvlucy(I, PSF, NUMIT, DAMPAR, WEIGHT) は、カメラの録画画質を反映するために各ピクセルに割り当てられる重みを指定します。重み値としてゼロを割り当てると、不良ピクセルが解から除外されます。正常ピクセルに単位重みを割り当てる代わりに、フラットフィールド補正の量に基づいて重みを調整できます。既定の設定は入力イメージ I と同じサイズの単位配列です。

J = deconvlucy(I, PSF, NUMIT, DAMPAR, WEIGHT, READOUT) は、加法性ノイズ (バックグラウンド ノイズやフォアグラウンド ノイズなど) と読み取りカメラ ノイズの分散に対応する値を指定します。READOUT はイメージの単位で表す必要があります。既定値は 0 です。

J = deconvlucy(I, PSF, NUMIT, DAMPAR, WEIGHT, READOUT, SUBSMPL) では、SUBSMPL はサブサンプリングを表し、PSF がイメージより SUBSMPL 倍細かいグリッド上に位置する場合に使われます。既定値は 1 です。

メモ:

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

デコンボリューションの再開

I はセル配列の場合、1 つの数値配列を格納するか (ブレのあるイメージ)、deconvlucy を以前に実行したときの結果を出力します。

セル配列を入力として deconvlucy に渡すと、1 行 4 列のセル配列 J が返されます。各パラメーターの意味は次のとおりです。

J{1} は元のイメージ I を格納します。

J{2} は最後の反復の結果を格納します。

J{3} は最後から 2 番目の反復の結果を格納します。

J{4} は反復アルゴリズムによって生成される配列です。

クラス サポート

I は、uint8uint16int16double または single のいずれかです。PSF は、uint8uint16int16double または single のいずれかです。ただし、deconvlucy は PSF を正規化せずに double に変換します。DAMPARREADOUT のクラスは入力イメージと同じでなければなりません。その他の入力は double にする必要があります。出力イメージ J (または出力セルの最初の配列) のクラスは入力イメージ I と同じになります。

すべて折りたたむ

サンプル イメージを作成し、ブレを加えます。

I = checkerboard(8);
PSF = fspecial('gaussian',7,10);
V = .0001;
BlurredNoisy = imnoise(imfilter(I,PSF),'gaussian',0,V);

重み配列を作成し、いくつかのオプションのパラメーターを使用して deconvlucy を呼び出します。

WT = zeros(size(I));
WT(5:end-4,5:end-4) = 1;
J1 = deconvlucy(BlurredNoisy,PSF);
J2 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V));
J3 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V),WT);

結果を表示します。

subplot(221);imshow(BlurredNoisy);
title('A = Blurred and Noisy');
subplot(222);imshow(J1);
title('deconvlucy(A,PSF)');
subplot(223);imshow(J2);
title('deconvlucy(A,PSF,NI,DP)');
subplot(224);imshow(J3);
title('deconvlucy(A,PSF,NI,DP,WT)');

参考文献

[1] Biggs, D.S.C. “Acceleration of Iterative Image Restoration Algorithms.” Applied Optics. Vol. 36. Number 8, 1997, pp. 1766–1775.

[2] Hanisch, R.J., R.L. White, and R.L. Gilliland. “Deconvolution of Hubble Space Telescope Images and Spectra.” Deconvolution of Images and Spectra (P.A. Jansson, ed.). Boston, MA: Academic Press, 1997, pp. 310–356.

R2006a より前に導入

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