当前位置:文档之家› 数字图像处理-加噪与滤波(含MATLAB代码)

数字图像处理-加噪与滤波(含MATLAB代码)

数字图像处理-加噪与滤波(含MATLAB代码)
数字图像处理-加噪与滤波(含MATLAB代码)

数字图像处理实验三

15生医

一、实验内容

产生教材104页题图4.16所示的灰度图像(白为255,黑为0),分别加入高斯白噪声和椒盐噪声,再分别进行3x3的平均滤波和中值滤波,显示原图像、加噪图像和滤波结果图像,并比较四种滤波结果。

二、运行环境

MATLAB R2014a

三、运行结果及分析 ①由实验结果可以看出:

平均滤波比中指滤波的效果差一点,平均滤波对原图像的边缘保留得不好,交界处较为模糊。同时,均值滤波器是用邻域内各像素的灰度平均值代替该像素原来的灰度值,实现图像

的平滑,它对高斯噪声的抑制效果好。中值滤波器是用像素邻域内的中间值代替该像素值。它对脉冲干扰及椒盐噪声的抑制效果好,

在抑

原图像加入

高斯噪声进行

平均滤

波进行中值滤

原图像加入

椒盐噪声进行平均滤波进行中值滤波

制随机噪声的同时能有效保护边缘少受模糊。

②原因分析:平均滤波属于局部平均的线性滤波,所用的线性滤波器的工作原理可以比喻为用水冲浇桌面上的污点,冲洗的结果是污点并没有消失,只是被淡化,也有可能是整个桌面都被污点所影响。而中值滤波的基本思想是将污点直接去除。在含噪图像中,噪声往往以孤立点的形式出现,尤其是干扰脉冲和椒盐类噪声。这些干扰或噪声所占的像素数很少,而图像则是由像素数目较多、面积较大的小块组成。基于这一事实,可采用中值滤波方法来消除噪声,同时避免采用平均滤波时带来的目标物边缘模糊的问题。

③放大右边结果部分的截图:

四、心得体会

通过MATLAB编程更加直观地了解了平均滤波与中值滤波的效果差异,使课本理论得到验证,另一方面也对噪声模型及其适用的滤波模板有了一定的认识。同时,对MATLAB产生噪声的函数调用及实现像素点灰度值的替换机理也有所掌握,比如后边附的程序中会提到的“%”标注的思考。

五、具体程序

%创建原图像

f=zeros(256,256);

unit=255*ones(210,7);

for i=0:8

f(24:233,(29+24*i):(29+24*i+6))=unit;

%坐标从1开始(不是0),因此白色区域的纵向起始像素点为(256-210)/2+1=24,

%止点为256-24+1=233,同理横向起始像素点为(256-7x9-17x8)/2=28.5,取28 %每个白条宽为7,间隔为7+17=24,因此下一个白条始于28+24+1,以此类推

end

f1=imnoise(f,'gaussian',0,0.1); %均值为零方差为0.1的高斯噪声

f2=imnoise(f,'salt & pepper',0.1); %噪声密度为0.1的椒盐噪声

for i=2:1:255

for j=2:1:255

%3x3的8领域平均滤波

f1_mean(i,j)=(f1(i-1,j-1)+f1(i-1,j)+f1(i-1,j+1)+f1(i,j-1)+f1(i,j+ 1)+f1(i+1,j-1)+f1(i+1,j)+f1(i+1,j+1))/8;

f2_mean(i,j)=(f2(i-1,j-1)+f2(i-1,j)+f2(i-1,j+1)+f2(i,j-1)+f2(i,j+ 1)+f2(i+1,j-1)+f2(i+1,j)+f2(i+1,j+1))/8;

%3x3的方形中值滤波

a1=[f1(i-1,j-1),f1(i-1,j),f1(i-1,j+1),f1(i,j-1),f1(i,j),f1(i,j+1),f1(

i+1,j-1),f1(i+1,j),f1(i+1,j+1)];

a2=[f2(i-1,j-1),f2(i-1,j),f2(i-1,j+1),f2(i,j-1),f2(i,j),f2(i,j+1),f2(

i+1,j-1),f2(i+1,j),f2(i+1,j+1)];

b1=sort(a1);

b2=sort(a2);

f1_mid(i,j)=b1(5);

f2_mid(i,j)=b2(5);

end

end

subplot(2,4,1);

imshow(f);

title('原图像');

subplot(2,4,2);

imshow(f1);

title('加入高斯噪声');

subplot(2,4,3);

imshow(f1_mean);

title('进行平均滤波');

subplot(2,4,4);

imshow(f1_mid);

title('进行中值滤波');

subplot(2,4,5);

imshow(f);

title('原图像');

subplot(2,4,6);

imshow(f2);

title('加入椒盐噪声');

subplot(2,4,7);

imshow(f2_mean);

title('进行平均滤波');

subplot(2,4,8);

imshow(f1_mid);

title('进行中值滤波');

图像加入高

斯噪声进行平均

滤波进行中值

滤波原

图像加入椒盐

噪声进行平均

滤波进行中值滤波

相关主题
文本预览
相关文档 最新文档