这里只写算术均值滤波器,下面代码是添加了噪声,再用滤波器去处理。
close all
clc
sigma=25;%添加噪声强度
i=7; %滤波器窗口大小
filename='D:\Matlab2018a\work\meanfilter\Set12\08.png'; %图片所在路径
imgGray = im2double(imread(filename)); %读入图片
% imgnoise=imnoise(imgGray,'gaussian',0,(sigma/255)^2);%添加高斯噪声,
%其他噪声的添加方法参考我的另一篇博客https://blog.csdn.net/qq_38843532/article/details/90454559
operator=fspecial('average',[i,i]);%建立预定义的滤波算子
output=imfilter(imgnoise,operator,'corr','replicate','same');
%replicate:边缘采用复制外边界的方式来扩展,可替换为symmetric:边缘采用镜像反射外边界的方式来扩展
imwrite(output,'D:\Matlab2018a\work\meanfilter\mean_arth\result\imgnoise.png')%写出噪声图片到指定目录
imshow(output);
PSNR = psnr(imgGray,imgnoise); %计算PSNR