7

私はMatLabが初めてです。遊んでヘルプガイドを読んでいますが、この状況を解決できないようです。

ここに画像の説明を入力

ガウスアルゴリズムを使用してノイズを除去しました。それは成功しましたが、画像を鮮明にすることはできませんでした。Richardson-Lucy deblurring アルゴリズムを使用してみましたが、うまくいきません。どうすればこれを解決できますか?事前にt​​hnx。

これが私がこれまでに行ったことです。

画像サイズ = 21kb 画像サイズ = 264 x 126

img = imread('car_plate.jpg')
subplot(331);
imshow(img), title('Original Image')

PSF = fspecial('gaussian',15,15);
blur = imfilter(img,PSF,'replicate');
subplot(332);imshow(blur);title('Filter image');

motion_noise = fspecial('disk', 7);

luc1 = deconvlucy(img,motion_noise);
subplot(333); imshow(luc1);
title('Disk and Lucy');

LEN = 9; THETA = 1;
motion_noise2 = fspecial('motion', LEN, THETA);


luc2 = deconvlucy(blur,motion_noise2);
subplot(334); imshow(luc2);
title('Motion and Lucy');

メディアン フィルターを使用しようとすると、この出力が得られました

medfilt2 の使用エラー
入力番号 1、A は 2 次元である必要があります。

medfilt2>parse_inputs のエラー (106 行目)
validateattributes(a, {'numeric','logical'}, {'2d','real'}, mfilename, 'A', 1);

medfilt2 のエラー (48 行目)
[a, mn, padopt] = parse_inputs(varargin{:});

a1q21 のエラー (2 行目)
J = medfilt2(img);

そして私の現在の結果はこれです。

ここに画像の説明を入力

4

1 に答える 1

5

ブレ除去アルゴリズムに間違った点広がり関数を使用しています (ピルボックスは不適切な選択です)。最良の結果を得るには、メジアン フィルターでフィルター処理して S&P ノイズを除去してから、ガウス カーネルでブレを除去します。画像には方向性の強いぼかしがないように見えるため、モーションのぼかしをスキップします。最良の結果を得るには、シャープ化フィルターのシグマを調整する必要があります。

img = imread('car_plate.jpg')
subplot(331);
imshow(img), title('Original Image')

blur = medfilt2(img,[3 3]);
subplot(332);imshow(blur);title('Filter image');

deblurSigma = 10; %Adjust this to get the most visually pleasing results
motion_noise = fspecial('gaussian', 15,deblurSigma);
luc1 = deconvlucy(img,motion_noise);
subplot(333); imshow(luc1);
title('Disk and Lucy');
于 2013-08-28T02:42:11.337 に答える