基于最小均方差(维纳)滤波的图像去模糊

逆滤波容易受到噪声的影响。最小均方差滤波,该方法建立在图像和噪声都是随机变量的基础上,找出未污染图像 f 的一个估计 f^ ,使他们之间的均方误差最小。

e2=E{(ff^)2}

假设噪声和图像不相关,其中一个或另一个有零均值,且估计中的灰度级是退化图像中灰度级的线性函数。误差函数的最小值在频率域表示:
F^(u,v)=[H(u,v)Sf(u,v)Sf(u,v)|H(u,v)|2+Sη(u,v)]=[H(u,v)|H(u,v)|2+Sη(u,v)/Sf(u,v)]=[1H(u,v)|H(u,v)|2|H(u,v)|2+Sη(u,v)/Sf(u,v)]G(u,v)

一个复向量与其共轭的乘积等于该复数量幅度的平方。维纳滤波。
Sη(u,v)=|N(u,v)|2=
Sf(u,v)=|F(u,v)|2=退
当我们处理白噪声时,谱 |N(u,v)|2 是个常数,未退化图像的功率谱很少是已知的。经常用下式近似表达:
F^(u,v)=[|H(u,v)|2|H(u,v)|2+K]G(u,v)

PSNR是最普遍和使用最为广泛的一种图像客观评价指标,然而它是基于对应像素点间的误差,即基于误差敏感的图像质量评价。由于并未考虑到人眼的视觉特性(人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响等),因而经常出现评价结果与人的主观感觉不一致的情况。
MSE表示当前图像X和参考图像Y的均方误差(Mean Square Error),H、W分别为图像的高度和宽度:
MSE=1H×Wi=1Hj=1W(X(i,j)Y(i,j))2

PSNR的单位是dB,数值越大表示失真越小。n为每像素的比特数,一般的灰度图像取8,即像素灰阶数为256.
PSNR=10log10((2n1)2MSE)

%Read image

I = imread('1.jpg'); 
[d1,d2,d3] = size(I); 
if(d3 > 1) 
I = rgb2gray(I);
end
I = im2double(I);
%I = im2double(imread('cameraman.tif'));
figure,subplot(2,3,1),imshow(I);
title('Original Image ');

%Simulate a motion blur
LEN = 100;
THETA = 11;
PSF = fspecial('motion', LEN, THETA);
blurred = imfilter(I, PSF, 'conv', 'circular');
subplot(2,3,2),imshow(blurred);

PSNRblurr=psnr(I,blurred);
title('blurred');

%Restore the blurred image
wnr1 = deconvwnr(blurred, PSF, 0);
subplot(2,3,3),imshow(wnr1);
PSNR1=psnr(I,wnr1);
title('Restored Image');

%Simulate blur and noise
noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred, 'gaussian', ...
                        noise_mean, noise_var);
subplot(2,3,4),imshow(blurred_noisy)
title('Simulate Blur and Noise')
PSNRnoise=psnr(I,blurred_noisy);

%Restore the blurred and noisy image:First attempt
wnr2 = deconvwnr(blurred_noisy, PSF, 0);
subplot(2,3,5);imshow(wnr2);title('Restoration of Blurred, Noisy Image Using NSR = 0')
PSNR2=psnr(I,wnr2);

%Restore the Blurred and Noisy Image: Second Attempt
signal_var = var(I(:));
wnr3 = deconvwnr(blurred_noisy, PSF, noise_var / signal_var);
subplot(2,3,6),imshow(wnr3)
PSNR3=psnr(I,wnr3);

title('Restoration of Blurred, Noisy Image Using Estimated NSR');

基于最小均方差(维纳)滤波的图像去模糊_第1张图片

J = deconvwnr(I,PSF,NSR)
NSR噪声和信号比,显著影响计算结果,计算结果可以用PSNR来度量。
http://blog.csdn.net/zjyruobing/article/details/49908979
http://blog.csdn.net/bluecol/article/details/46242355

你可能感兴趣的:(图像处理,Image,Deblurring)