M=imread("C:\Users\user\Desktop\color.jpg"); %读取图像
[ROW,COL, DIM] = size(M);%保存图像尺寸
subplot(3,3,1),imshow(M),title('original');%显示原始图像
P1=imnoise(M,'gaussian',0.05); %加入高斯躁声
subplot(3,3,2),imshow(P1),title('gaussian noise');%加入高斯躁声后显示图像
P1=im2double(P1);
guss_filter_img=P1;
for r = 2:1:ROW-1
for c = 2:1:COL-1
for d =1:3
guss_filter_img(r,c,d) =(P1(r-1, c-1,d) + P1(r-1, c,d)*2 + P1(r-1, c+1,d) +...
P1(r, c-1,d)*2 + P1(r, c,d)*4 + P1(r, c+1,d)*2+...
P1(r+1, c-1,d) + P1(r+1, c,d)*2 + P1(r+1, c+1,d))/ 16;
end
end
end
subplot(3,3,3),imshow(guss_filter_img),title('guss_img');
对于其中的imnoise来说:
二、常见噪声的分类
1、高斯噪声
高斯噪声是指其概率密度函数服从高斯分布(即正态分布)的一类噪声。若一个噪声,其幅度分布服从高斯分布,且其功率谱密度又是均匀分布,则称为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。高斯噪声的噪声信号随机分布,没有规律。
2、泊松噪声
泊松噪声是指其概率密度函数服从泊松分布的一类噪声,泊松分布适合于描述单位时间内随机事件发生的次数的概率分布。泊松噪声一般在亮度很小或者高倍电子放大线路中出现。
3、椒盐噪声
椒盐噪声又称脉冲噪声,其随机改变一些像素值,在二值图像上表现为使一些像素点变白,一些像素点变黑。椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声,往往由图像分割引起,老式电视机常常出现的“雪花”即为椒盐噪声。
4、斑点/乘性噪声
根据相干原理进行成像的系统中普遍存在的一类噪声,如超声、雷达、SAR等。噪声原理是反射表面在波长尺度上是粗糙的,因此反射波存在明显的散射效应,导致所成的像出现斑点。
三、imnoise()函数基本调用格式
语法参数说明
J = imnoise(I,type)按照给定类型添加图像噪声给图像I
J = imnoise(I,type,parameters)按照给定类型添加图像噪声给图像I,parameters泛指可以添加的参数,类型不同,参数不同
J = imnoise(I,‘gaussian’,m,v)添加高斯白噪声给图像I,均值为m,方差为v。默认m = 0,v = 0.01
J = imnoise(I,‘localvar’,V)将均值为0,局部方差为V的高斯噪声添加到图像I上,其中V是与I大小相同的一个数组
J = imnoise(I,‘localvar’,h,v)在图像的不同亮度值上叠加不同方差的高斯噪声,h为在[0,1]之间的向量,表示图像的亮度值,v为一个长度和h相同,表示与h中亮度对应的高斯噪声的方差
J = imnoise(I,‘poisson’)添加泊松噪声给图像I
J = imnoise(I,‘salt & pepper’,d)添加椒盐噪声给图像I,噪声密度为d。默认d=0.05
J = imnoise(I,‘speckle’,v)添加斑点/乘性噪声给图像I,方差为v。默认v=0.04
I = imread('pout.tif');
figure(1),imshow(I);
title('Original image');
figure(2),
J = imnoise(I,'gaussian',0,0.03); % 添加高斯白噪声,均值0,方差0.03
subplot(221),imshow(J);
title('Gaussian');
K = imnoise(I,'salt & pepper',0.03);% 添加椒盐噪声,噪声密度0.03
subplot(222),imshow(K);
title('Salt & Pepper');
L = imnoise(I,'poisson'); % 添加泊松噪声
subplot(223),imshow(L);
title('Poisson');
M = imnoise(I,'speckle',0.03); % 添加斑点/乘性噪声,方差为0.03
subplot(224),imshow(M);
title('Speckle');