F = imread('D:\Mary.bmp');%读出图像
imshow(F);%显示图像
title('ÔÍÏñ');%加标题
imwrite(F,'4-ÔÍÏñ.bmp');%把原图像以bmp的格式保存到work目录下
noise =
0.1*randn(size(F));%设定一个高斯噪声
Noise = imadd(F,
im2uint8(noise));%对原图像加噪声
imshow(Noise);%显示加噪图像
title('ÓÔëÍÏñ');%加标题
imwrite(Noise,'4-ÓÔëÍÏñ.bmp');%把加噪图像以bmp的格式保存到work目录下
[thr,sorh,keepapp] =
ddencmp('den','wv',im2double(Noise));%产生图像的默认阈值
Restore =
wdencmp('gbl',im2double(Noise),'sym2',2,thr,sorh,keepapp);%对图像进行小波去噪
imshow(Restore);%显示恢复后图像
title('ÈÔëÍÏñ');%加标题
imwrite(Restore,'4-´¦ÀíºóÍÏñ.bmp');%把处理后图像以bmp格式保存到work目录下
%求原图像和处理后图像的均方差MSE1和MSE2
F = double(F);
Noise = double(Noise);
Restore = double(Restore);
for i = 1 : 256;
for j = 1:256;
a(i,j) = abs(F(i,j) - Noise(i,j));
b(i,j) = abs(Noise(i,j) - Restore(i,j));
end
end
c1 = 0;
c2 = 0;
for i = 1 : 256;
for j = 1 : 256;
c1 = c1 +
a(i,j);
c2 = c2 + b(i,j);
end
end
MSE1 = c1/(255*255);
MSE2 = c2/(255*255);
%求原图像和处理后图像的峰值信噪比PSNR1和PSNR2
PSNR1 =
10*log(10*(255^2/MSE1));
PSNR2 =
10*log(10*(255^2/MSE2));