7

我是 MatLab 的新手。一直在玩耍并阅读帮助指南,但我似乎无法解决这种情况。

在此处输入图像描述

我已经使用高斯算法去除了噪音。那是成功的,但我没有设法让图像清晰,我尝试使用 Richardson-Lucy 去模糊算法,但它不起作用。知道我该如何解决这个问题吗?提前谢谢。

这是我到目前为止所做的。

图像大小 = 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,是二维的。

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 噪声,然后使用高斯核进行去模糊。我会跳过运动去模糊,因为图像似乎没有强烈的方向性模糊。您将需要使用锐化滤镜的 sigma 以获得最佳效果。

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 回答