4

2 つの画像があります。1 つは劣化したもので、もう 1 つは元の画像の一部です。2 番目の画像を使用して最初の画像を強化する必要があり、周波数領域でこれを行う必要があります。劣化した画像から同じ領域を切り取り、その FFT を取り、伝達関数を計算しようとしましたが、その関数を画像に適用すると、ひどい結果になりました。

だから私はh=fspecial('motion',9,45);自分の伝達関数になろうとして、以下のコードで画像を再構築しました。

im = imread('home_degraded.png');
im = rgb2gray(im);
h = fspecial('motion',9,45);
H = zeros(519,311);
H(1:7,1:7) = h;
Hf = fft2(H);
d = 0.02;
Hf(find(abs(Hf)<d))=1;
I = ifft2(fft2(im)./Hf);
imshow(mat2gray(abs(I)))

2 つの質問があります。

  1. 小さな長方形を使用して伝達関数を生成するにはどうすればよいh=fspecial('motion',9,45);ですか (つまり、を使用しないことを意味します)。

  2. 強調された画像からノイズを除去するには、どのような方法を使用できますか?

ここに画像の説明を入力してください

4

2 に答える 2

5

そのためのいくつかの方法をお勧めします。

  1. 算術平均フィルタ:

    f = imfilter(g, fspecial('average', [m n]))
    
  2. 幾何平均フィルター

    f = exp(imfilter(log(g), ones(m, n), 'replicate')) .^ (1/(m*n))
    
  3. 高調波平均フィルター

    f = (m*n) ./ imfilter(1 ./ (g + eps), ones(m, n), 'replicate');
    

    ここで、n と m はマスクのサイズです (たとえば、 を設定できますm = 3 n = 3) 。

于 2012-11-16T18:22:15.313 に答える
0

基本的に、やりたいことには(少なくとも)2つのステップがあります。

  1. 正方形を含むイメージのパッチを使用して、PSF (ブラー カーネル) を推定します。
  2. 推定されたカーネルを使用してぼやけた画像をデコンボリューションします

ステップ 1 の PSF を「推測」したい場合は、それで問題ありませんが、計算することをお勧めします。

ステップ 2 では、edgetaperノイズと呼ばれる画像のリンギング効果を抑えるために、最初に使用する必要があります。

deconvlucy次の構文に従って関数を使用して、非ブラインド デコンボリューション (手順 2) を使用します。

J = deconvlucy(I,PSF)

このデコンボリューション手順は、特に PSF が 100% 正確ではない場合に多少のノイズを追加しますが、より多くの反復 (詳細のトレード、NFL) を許可すると、よりスムーズにすることができます。

最初のステップでは、「鋭い」正方形を持っているという事実を気にしない場合は、ブラインド デコンボリューションdeconvblindを使用して、PSF の推定値を得ることができます。それを正しく行い、シャープ パッチを使用する場合は、PSF の推定を含む任意の最適化スキームでデータ ターム ターゲットとして使用できます。

于 2015-01-10T14:39:33.107 に答える