中值滤波器实验报告 - 图文

2026/4/23 12:18:47

数字图像处理实验 实验三 中值滤波器

实验目的

? 深入理解空域滤波的概念,掌握模板卷积的计算方法

? 掌握中值滤波器的构建方法,并会中值滤波器对图像进行噪声去除。

实验要求

1.读入lena图像,将lena图像转换为灰度图,可用rgb2gray 2.用imnoise加入方差为0.2的椒盐噪声。

3.用medfilt2函数对图像进行空间滤波,所用模板为3*3的中值滤波器。 4.改用5*5的中值滤波器重做3中的步骤,比较结果的不同。

实验原理

在图像处理中,在进行如边缘检测这样的进一步处理之前,通常需要首先进行一定程度的降噪。中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用奇数个采样组成的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输出。然后,丢弃最早的值,取得新的采样,重复上面的计算过程。中值滤波是图像处理中的一个常用步骤,它对于斑点噪声(en:speckle noise)和椒盐噪声(en:salt-and-pepper noise)来说尤其有用。保存边缘的特性使它在不希望出现边缘模糊的场合也很有用。

实验心得

1.MATLAB中提供的加噪声的函数和中值滤波函数对本实验的实现提供了便利,直接调用函数即可实现本实验。

2.实验可以分别使用相同类型但方差不同的噪声、模板半径不同的中值滤波器进行实验,用控制变量法观察噪声方差、中值滤波器模板半径对滤波效果的影响。

3.实验可以通过中值滤波器对不同类型噪声污染后的图像的滤波效果进行比较,体会中值滤波器对不同噪声的滤波效果。

4. 自己编写函数对图像进行噪声污染和滤波时,为了方便,不考虑图像边缘滤波,这样程序编写较为方便,而另一方面,图像的滤波不彻底,其边缘噪声不能滤去。

实验源代码

1. 用系统函数对图像进行噪声污染和滤波:

clc clear all

%读入位于D盘\\tuxiang的lena图像 A=imread('D:\\tuxiang\\lena.bmp');

%将读入的彩色图像转化为灰度图像 B=rgb2gray(A);

%对图像加入方差为0.2的椒盐噪声 C=imnoise(B,'salt & pepper',0.2); F=imnoise(B,'salt & pepper',0.5);

%对图像加入均值为0,方差为0.01的高斯噪声 I=imnoise(B,'gaussian',0,0.05);

%用模板为3*3的中值滤波器对噪声污染后的图像进行空间滤波 D=medfilt2(C,[3,3]); G=medfilt2(F,[3,3]); J=medfilt2(I,[3,3]);

%用模板为5*5的中值滤波器对噪声污染后的图像进行空间滤波 E=medfilt2(C,[5,5]); H=medfilt2(F,[5,5]); K=medfilt2(I,[5,5]);

%绘制原始图像 figure subplot(2,2,1); imshow(B); title('原始图像');

%绘制被噪声污染的图像 subplot(2,2,2); imshow(C);

title('方差0.2的椒盐噪声污染后的图像');

%绘制用3*3模板的中值滤波器滤波后的图像 subplot(2,2,3); imshow(D);

title('3*3模板滤波后的后的图像');

%绘制用5*5模板的中值滤波器滤波后的图像 subplot(2,2,4); imshow(E);

title('5*5模板滤波后的后的图像');

%绘制原始图像 figure subplot(2,2,1); imshow(B); title('原始图像');

%绘制被噪声污染的图像 subplot(2,2,2); imshow(F);

title('方差0.5的椒盐噪声污染后的图像');

%绘制用3*3模板的中值滤波器滤波后的图像 subplot(2,2,3); imshow(G);

title('3*3模板滤波后的后的图像');

%绘制用5*5模板的中值滤波器滤波后的图像 subplot(2,2,4); imshow(H);

title('5*5模板滤波后的后的图像');

%绘制原始图像 figure subplot(2,2,1); imshow(B); title('原始图像');

%绘制被噪声污染的图像 subplot(2,2,2); imshow(I);

title('均值为0、方差0.05的高斯噪声污染后的图像');

%绘制用3*3模板的中值滤波器滤波后的图像 subplot(2,2,3); imshow(J);

title('3*3模板滤波后的后的图像');

%绘制用5*5模板的中值滤波器滤波后的图像 subplot(2,2,4); imshow(K);

title('5*5模板滤波后的后的图像');

2. 自己编写程序对图像进行噪声污染和滤波:

clc clear all

row=512;%图像的行像素点 col=512;%图像的列像素点 n1=3;

n2=5;

N1=zeros(n1*n1);%申明3*3模版,且初始化 N2=zeros(n2*n2);%申明5*5模版,且初始化

%读入位于D盘\\tuxiang的lena图像 A=imread('D:\\tuxiang\\lena.bmp');

%将读入的彩色图像转化为灰度图像 B=rgb2gray(A);

n=rand(row,col);

C=B;%申明被噪声污染后的图像C,且初始化

%生成噪声污染图像,达到和系统椒盐噪声污染相同的效果 for i=1:row for j=1:col

if(n(i,j)<=0.1) C(i,j)=0; else

if(n(i,j)>=0.9) C(i,j)=255; end end end end

D=C;%申明用3*3模版滤波后的图像D,且初始化 E=C;%申明用5*5模版滤波后的图像D,且初始化

%用模版为3*3的中值滤波器进行滤波,不考虑边缘 for x=2:row-1 for y=2:col-1

N1=[C(x-1,y-1:y+1),C(x,y-1:y+1),C(x+1,y-1:y+1)]; N1=sort(N1);

D(x,y)=N1((n1*n1+1)/2); end end

%用模版为5*5的中值滤波器进行滤波,不考虑边缘 for x=3:row-2 for y=3:col-2

N2=[C(x-2,y-2:y+2),C(x-1,y-2:y+2),C(x,y-2:y+2),C(x+1,y-2:y+2),C(x+2,y-2:y+2)]; N2=sort(N2);


中值滤波器实验报告 - 图文.doc 将本文的Word文档下载到电脑
搜索更多关于: 中值滤波器实验报告 - 图文 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219