图像的退化和复原
图像的退化和复原
im=imread('board.bmp');
subplot(2,3,1);
imshow(im,[]);
title('图a原始的未退化图像');
length=28;
theta=45;
h=fspecial('motion',length,theta);
imBlur=imfilter(im,h,'circular','conv');
subplot(2,3,2);
imshow(imBlur,[]);
title('图b运动模糊图像');
mu = 0;
sigma2 = 0.001;
imZeros = zeros(size(im));
noise = imnoise(imZeros,'gaussian',mu,sigma2);
subplot(2,3,3);
imshow(noise,[]);
title('图c高斯噪声图像');
imBlur=im2double(imBlur);%将imBlur转换成和noise一样的数据类型
imNoisedBlur=noise + imBlur;
subplot(2,3,4);
imshow(imNoisedBlur,[]);
title('图d高斯噪声+运动模糊图像');
imDeblur1 = deconvwnr(imNoisedBlur,h);
subplot(2,3,5);
imshow(imDeblur1,[]);
title('图e直接逆滤波的复原图像');
K=sum(noise(:).^2)/sum(im2double(im(:)).^2);%计算信噪比
imDeblur2 = deconvwnr(imNoisedBlur,h,K);
subplot(2,3,6);
imshow(imDeblur2,[]);
title('图f维纳滤波的复原图像');
结果图