批量图像针对不同大小的高斯噪声滤波
1.简介
去噪方法:针对已知的图像及噪声强度(标准差分别为10,20,30,40,50,75,100),针对不同强度的高斯噪声采用自适应高斯滤波器对原图进行降噪,对于标准差较小的噪声选用低强度的高斯滤波,而标准差较大时则采用强度较高的滤波核进行降噪,所设计滤波器采用高斯滤波核同与原图进行卷积操作达到降噪目的。
2.实现
采用Matlab语言进行算法实现,并将滤波结果保存到原文件夹下,信噪比参数并入图像名字以便参考,算法实现如下:
name={'Lena','Monarch','House'};
D={'10','20','30','40','50','75','100'};
for i=1:length(name)
for j=1:length(D)
[name{i},D{j}]
path=['testimages\\',[name{i},D{j}],'.png'];
img=imread(path);
sigma=str2num(D{j});
W = fspecial('gaussian',[sigma,sigma],1);
result = imfilter(img, W,'conv');
psnr=getPSNR(img,result);
imwrite(result,['testimages\\',[name{i},D{j}],'-psnr-',num2str(psnr),'.png']);
end
end
function [psnr]=getPSNR(src,dst)
diff=src-dst;
MSE= sum(diff(:).*diff(:))/prod(size(src));
psnr = 10*log10(255^2/MSE);
end
3.效果:
求解PSNR公式,所设计滤波器降噪效果评价如下表: