实验截图:
- 产生高斯噪声和脉冲噪声的图片

- 用中值滤波器、均值滤波器、维纳滤波处理上面噪声图片

实验代码:
产生高斯噪声和脉冲噪声:
img=imread('erciyuan.jpg');
img=rgb2gray(img);
subplot(131);
imshow(img);
title('原图');
img_noise=imnoise(img,'gaussian',0.06);%在原图上产生高斯噪声
img_noise1=imnoise(img,'salt & pepper',0.02);%在原图上产生脉冲噪声
subplot(132);
imshow(img_noise,[]);
title('含有高斯噪声的图');
subplot(133);
imshow(img_noise1,[]);
title('含有脉冲噪声的图');
用中值滤波器、均值滤波器、维纳滤波处理上面噪声图片:
img=imread('woman.png');
img = rgb2gray(img);
img_noise=imnoise(img,'gaussian',0.02);
%img_noise=imnoise(img,'salt & pepper',0.02);
img_ave=filter2(fspecial('average',3),img_noise)/255; %均值滤波模板尺寸为3
img_mid= medfilt2(img_noise);%采用二维中值滤波函数medfilt2对受噪声干扰的图像滤波
img_wie=wiener2(img_noise,[3 3]); %对加噪图像进行二维自适应维纳滤波
subplot(2,3,1);imshow(img);
title('原始图像');
subplot(2,3,2);imshow(img_noise);
title('加噪图像');
subplot(2,3,3);imshow(img_ave);
title('均值滤波后的图像');
subplot(2,3,4);imshow(img_mid);
title('中值滤波后的图像');
subplot(2,3,5);imshow(img_wie);
title('维纳滤波后的图像');
结果分析:
高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。常见的高斯噪声包括起伏噪声、宇宙噪声、热噪声和散粒噪声等等。除常用抑制噪声的方法外,对高斯噪声的抑制方法常常采用数理统计方法。
脉冲噪声(impulsive noise)是非连续的,由持续时间短和幅度大的不规则脉冲或噪声尖峰组成。产生脉冲噪声的原因多种多样,其中包括电磁干扰以及通信系统的故障和缺陷,也可能在通信系统的电气开关和继电器改变状态时产生。
我们可以通过matlab自带的函数imnoise()来对图片添加噪声,imnoise的第二个参数可以控制我们添加噪声的类型,第三个参数当我们添加的是高斯噪声是表示的是方差,当我们添加的是脉冲噪声时,表示的是噪声密度。
这个实验中我们主要是使用到了三个函数来对噪声图像进行修复,第一个是均值滤波的filter2()函数,我们可以利用fspecial来设置均值滤波的模板尺寸和滤波器类型,将其设定为’average’和3,就可以实现利用均值滤波器对噪声图像修复,同时我们还可以用medfilt2()和wiener2()用中值滤波和维纳滤波来对噪声图像修复。
版权声明:本文为qq_43663263原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。