圖像的退化和復原
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維納濾波的復原圖像');
結果圖