中值滤波算法的滤波效果分析报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目中值滤波算法的滤波效果分析报告
学院:信息科学与技术学院
专业:控制科学与工程
学生:X X
指导教师:XXX
2014 年12月07日
1、中值滤波算法原理
中值滤波是一种对干扰脉冲和点状噪声有良好抑制作用,而对图像边缘能较好保持的非线性图像增强技术。中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。常用的中值滤波有线状、圆形、十字形、圆环形等形状;常用的中值滤波有3x3、5x5等区域。图像为二维信号,中值滤波的窗口形状和尺寸对滤波器效果影响很大,不同图像内容和不同应用要求往往选用不同的窗口形状和尺寸。
2、滤波效果分析
本文基于Matlab编程实现对含有噪声的图像进行中值滤波处理,中值滤波的基本步骤分为:
(1)将滤波模板(含有若干个点的滑动窗口)在图像中遍历,并将模板中心与图中某个像素位置重合;
(2)读取模板中各对应像素的灰度值;
(3)将这些灰度值从小到大排列;
(4)取这一列数据的中间数据,将其赋给对应模板中心位置的像素。如果窗口中元素为奇数,中值取元素按灰度值大小排序后的中间元素灰度值。如果窗口中元素为偶数,中值取元素按灰度值大小排序后,中间两个元素灰度的平均值。中间值代替该点的像素值。
调用Matlab中的中值滤波函数medfilt2()对添加噪声的图像进行滤波处理,分别添加高斯白噪声和椒盐噪声,分别使用3x3、5x5的窗口对添加噪声的图像进行滤波,其运行结果如下:
图2.1 原始图像
在原图像中添加0.002的高斯白噪声与椒盐噪声,噪声图像如图2.2所示。
图2.2 噪声图像
使用3x3、5x5的滤波窗口对高斯白噪声图像进行滤波处理,其结果如图2.3所示。
图2.3 白噪声图像滤波效果
使用3x3、5x5的滤波窗口对椒盐噪声图像进行滤波处理,其结果如图2.4所示。
图2.4 椒盐噪声图像滤波效果
中值滤波对两种不同噪声图像的处理结果对比如图2.5所示。
图2.5 滤波效果对比
3、结论
从本文的分析结果来看,中值滤波算法对消除椒盐噪声非常有效,不同窗口尺寸对处理结果也有较大影响。在光学测量条纹图像的相位分析处理方法中有特殊作用,但在条纹中心分析方法中作用不大;中值滤波的区域越大,即滤波窗口越大,对原始图像的边缘模糊越强。在一定条件下,其可以克服线性滤波器处理图像细节模糊的问题,而且它对滤除脉冲干扰和图像扫描噪声非常有效,但是,对点、线、尖顶等细节较多的图像,则会引起图像信息的丢失。由于不同图像的噪声类型、密度等都一样,因此在选择滤波算法时得根据噪声的性质得选择恰当的滤波算法,以及适当的滤波窗口尺寸。
附录
f = imread('1.bmp');%读入原图像
f1 = rgb2gray(f);%彩色图像转为灰度图像
f2 = imnoise(f1,'gaussian',0.002);%加入高斯白噪声图像
f3 = imnoise(f1,'salt & pepper',0.002);%加入椒盐噪声图像
f4 = medfilt2(f2,[3 3]);%3x3窗口的高斯白噪声图像中值滤波
f5 = medfilt2(f2,[5 5]);%5x5窗口的高斯白噪声图像中值滤波
f6 = medfilt2(f3,[3 3]);%3x3窗口的椒盐噪声图像中值滤波
f7 = medfilt2(f3,[5 5]);%5x5窗口的椒盐噪声图像中值滤波
figure(1),subplot(1,2,1),imshow(f),title('原始彩色图像'),subplot(1,2,2),imshow(f1),title('原始灰度图像');
figure(2),subplot(1,2,1),imshow(f2),title('高斯白噪声图像'),subplot(1,2,2),imshow(f3), title('椒盐噪声图像');
figure(3),subplot(1,2,1),imshow(f4),title('3x3白噪声图像'),subplot(1,2,2),imshow(f5), title('5x5白噪声图像');
figure(4),subplot(1,2,1),imshow(f6),title('3x3椒盐噪声图像'),subplot(1,2,2),imshow(f7), title('5x5椒盐噪声图像');
figure(5),subplot(1,2,1),imshow(f4),title('中值滤波处理白噪声图像'),subplot(1,2,2), imshow(f6),title('中值滤波处理椒盐噪声图像');