欢迎来到天天文库
浏览记录
ID:18984645
大小:341.00 KB
页数:4页
时间:2018-09-22
《中值滤波实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、湖南文理学院实验报告课程名称:图像处理技术实验实验名称:中值滤波实验成绩:学生姓名:专业:计算机科学与技术班级:学号:同组者姓名:实验日期:2012/12/3一、实验目的:①掌握中值滤波的原理、滤波过程;②掌握在给定阈值时,中值滤波的滤波过程(又叫做超限中值滤波);③熟悉Matlab编程。二、实验内容:①利用中值滤波,对图像进行滤波;②给定阈值时利用中值滤波,对图像进行滤波。三、实验原理:中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计特性,所以比较方便。中值滤波首先是被应用在一维信号处理技术中,后来被二维图像信号处理技术所应用。在一定的条件下,可以克服线性滤波器
2、所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效。但是对一些细节多,特别是点、线、尖顶细节多的图像不宜采用中值滤波的方法。中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替。设有一个一维序列,,…,,取窗口长度为m(m为奇数),对此序列进行中值滤波,就是从输入序列中相继抽出m个数,,…,,…,,…,,…,,其中为窗口的中心位置,,再将这m个点按其数值大小排列,取其序号为正中间的那作为出。用数学公式表示为:(2-2)例如:有一个序列为{0,3,4,0,7},则中值滤波为重新排序后的序列{0,0,3,4,7}中间的值为3。此例若用平均滤波
3、,窗口也是取5,那么平均滤波输出为。因此平均滤波的一般输出为:(2-3)对于二位序列进行中值滤波时,滤波窗口也是二维的,但这种二位窗口可以有各种不同的形状,如线状、方形、圆形、十字形、圆环形等。二维数据的中值滤波可以表示为:(2-4)在实际使用窗口时,窗口的尺寸一般先用再取逐渐增大,直到其滤波效果满意为止。对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口为宜,对于包含尖顶角物体的图像,适宜用十字形窗口。使用二维中值滤波最值得注意的是保持图像中有效的细线状物体。与平均滤波器相比,中值滤波器从总体上来说,能够较好地保留原图像中的跃变部分。四、实验步骤:(1)Maltab读取实验图像
4、;进入MATLAB6.5的运行环境编写代码如下所示:closeallclearallclcI=imread('Barbara256.bmp');figure;imshow(I);title('原始图像');(2)图像添加椒盐噪声,得到原始含噪声图像;实现代码如下:I_Noise=imnoise(I,'salt&pepper',0.1);figure;imshow(I_Noise);title('加入噪声的图像');(3)编程实现中值滤波法滤波过程;实现代码如下:II=I_Noise;I_Noise=double(I_Noise);T=3;fori=2:T1-1forj=2:T2-1
5、Block=I_Noise(i-1:i+1,j-1:j+1);Block=Block(:);Temp=sort(Block);ifabs(Temp(5)-I_Noise(i,j))>TII(i,j)=Temp(5);elseII(i,j)=I_Noise(i,j);endendendfigure;imshow(II);title('中值滤波后的图像');(4)给定阈值时,中值滤波的过程;实现代码如下:Io=10III=I_Noise;I_Noise=double(I_Noise);fori=2:255forj=2:255Block=I_Noise(i-1:i+1,j-1:j+1);
6、Temp=sort(Block(:));ifabs(Temp(5)-I_Noise(i,j))>IoII(i,j)=Temp(5);elseII(i,j)=I_Noise(i,j);endendendfigure;imshow(II);Title('超限中值滤波后图像');imwrite(II,'image.bmp');return;五、实验结果(显示所图像,并标明是什么图像):图1原始图像图2噪声图像图3去噪图像(中值滤波)图4超限中值滤波六、实验小结:中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计特性。通过本次实验了解了中值滤波的原理(是把数字图像或数字序列
7、中一点的值用该点的一个邻域中各点值的中值代替。)、滤波过程,在给定阈值时,中值滤波的滤波过程,熟悉了Matlab编程,学会了利用中值滤波,对图像进行滤波,给定阈值时利用中值滤波,对图像进行滤波。
此文档下载收益归作者所有