在Matlab上进行图像去模糊

Im新的MatLab。 一直玩和阅读帮助指南,但我似乎无法解决这种情况。

在这里输入图像描述

我使用高斯算法去除了噪音。 这是成功的,但我没有设法让图像清晰,我试过使用Richardson-Lucy去模糊算法,但它不起作用。 任何想法如何解决这个问题? Thnx提前。

这是我迄今为止所做的。

图像尺寸= 21kb图像尺寸= 264×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);

和我目前的结果是这样的。

在这里输入图像描述


你正在使用错误的点扩散函数来实现你的去伪算法(碉堡是一个不好的选择)。 为获得最佳效果,使用中值滤波器进行滤波,以消除标准普尔噪声,然后用高斯核函数去模糊。 由于图像似乎没有强烈的方向模糊,我会跳过运动去模糊。 您将需要使用锐化滤镜的西格玛来获得最佳效果。

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');
链接地址: http://www.djcxy.com/p/73853.html

上一篇: Image deblurring on Matlab

下一篇: WordPress gzinflate(): data error when debugging