《MATLAB课程设计(自适应中值滤波)(共11页).doc》由会员分享,可在线阅读,更多相关《MATLAB课程设计(自适应中值滤波)(共11页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上信息工程系课程设计报告课 程 MATLAB课程设计 专 业 通信工程 班 级 2级本科二班 学生姓名1 景 学号114学生姓名2 学号1414学生姓名3 王 学号6学生姓名4 学号31学生姓名4 学号02二一四年十二月专心-专注-专业目录摘 要: 通过本次课程设计,主要训练和培养学生综合应用所学MATLAB课程的自适应中值的相关知识,独立学习自适应中值滤波的原理及处理方式。学会扩大窗口并找到其区域内的中值、最小值、以及最大值,然后用中值代替像素点。通过自主学习和查阅资料来了解程序的编写及改进,并用MATLAB进行仿真。关键词:自适应 中值滤波 灰度值 椒盐噪声 像素点
2、.1.算法描述1.1 噪声点脉冲噪声是图像处理中常见的一类,中值滤波器对消除脉冲噪声非常有效。噪声脉冲可以是正的(盐点),也可以是负的(胡椒点),所以也称这种噪声为 “椒盐噪声”。椒盐噪声一般总表现为图像局部区域的最大值或最小值,并且受污染像素的位置是随机分布的,正负噪声点出现的概率通常相等。图像噪声点往往对应于局部区域的极值。1.2 窗口尺寸选择 滤波窗口尺寸的选择影响滤波效果,大尺寸窗口滤波能力强, 但细节保持能力较弱;小尺寸窗口能保持图像大量细节但其滤波性能较低。根据噪声密度的大小自适应地选择滤波窗口可以缓和滤波性能与细节保持之间的矛盾,同时也增加了算法的时间复杂度。从形状看来窗口方向要
3、沿着边缘和细节的方向,不能穿过它们也不能把它们和周围相差很大的像素包含在同一窗口中否则边缘和细节会被周围像素模糊。1.3求滤波窗口内中值,并替换像素点。设f ij为点(i,j)的灰度,A i,j为当前工作窗口,f min、f max和f med分别为A i,j中的灰度最小值、灰度最大值和灰度中值, A max为预设的允许最大窗口。 自适应中值滤波算法的基本步骤如下: 1)f minf medf max,则转至第2步;否则增大窗口A i,j 尺寸。若A i,j的尺寸小于A max的尺寸, 则重复第1步; 否则输出f ij。2)f minf ijf max,则输出f ij;否则输出f med。 可
4、以看出, 算法中噪声点的检测和认定是以f min和f max为基准的,如果f minf medf max,表明f med不是噪声,接着根据 f minf ijf max判断f ij是否是噪声, 当f ij与f med都不是脉冲噪声时,优先输出f ij。2程序实现2.1准备和描述 clear; % 清除工作空间的变量I=imread(I3_256.bmp); % 输入图像I=imnoise(I,salt & pepper, 0.7); % 加入椒盐噪声点 密度为0.7imshow(I) % 显示图像figure; % 控制窗口数量 先显示一个M=I; % 赋给MI=double(I); % 确定
5、精度 提高精度M=double(M); flag11=1; % 11是(1,1)是开始的点H=512; % H为高,L为长L=512; % 像素为512*512for i=1:H % for 从1到512 for j=1:L flag(i,j)=1; % 所有点都假定为噪点 end end 2.2扩大窗口、确定窗口 for i=1:H %大循环 % i为横坐标 j为纵坐标 for j=1:L %大循环 omiga=2; % omiga=2 是最大滤波半径 %确定窗口 while flag(i,j)=1 % 循环 恒为一 一直执行 zuo=i-omiga; % 左减xia=j-omiga; %
6、下减 扩大窗口 you=i+omiga; % 右加 shang=j+omiga; % 上加 if zuo1 zuo=1; end % 扩大窗口 但不出边界if xiaL %右、下、上运算与左同理 you=L; end if shangH shang=H;end%窗口确定结束2.3 确定最大、最小值和中值 %确定最大最小值 smin=I(i,j); % 给smin、smax初始化 smax=I(i,j); total=(you-zuo+1)*(shang-xia+1); %total是放大后的像素点的个数 total=5*5=25 vect1=zeros(1,total-1); % total-
7、1为去掉中心点 kn=1; for in=zuo:you %zuo:you xia:shang 为横纵向扫描 for jn=xia:shang if (in=i&jn=j)=0) %“与” 00、01、10 满足if vect1(1,kn)=I(in,jn); %把灰度值赋给vect1 kn=kn+1; end endendsmin=nanmin(vect1); %nanmin 包含缺失值的样本的最小值smax=nanmax(vect1); %nanmax 包含缺失值的样本的最大值smed=nanmedian(vect1); %nanmedian 包含缺失值的样本的中值2.4中值替换像素点 、
8、输出图像if (S med-S min)0&(S max-S med)0 if S minM(i,j)&M(i,j)=5 %当滤波半径大于5时不用判断 flag11=0; % 直接输出 endif omiga=17 % 当滤波半径很大时 不再判断 flag11=0; M(i,j)=S med; % 直接等于中值 输出 flag(i,j)=0; end end end %while %第六页while循环 end %大循环 %第六页for循环 end %大循环 % 第六页for循环I=uint8(M); % 变为8位的无符号整形数据imshow(I); % 显示图像实验结果 加入0.7噪点图片 经处理后图片: 参考文献荆仁杰,叶秀清.计算机图像处理M.北京:浙江大学出版社,1988:122. 韩丽娜,耿国华基于小波变换的真彩图像降噪与增强J计算机工程, 2010,36(12):224225陈初侠,丁勇,刘栎莉去除椒盐噪声的自适应开关加权均值滤波J计算机工程,2010,36(4):210212秦虹,王耀南,朱江,等一种改进的极值均值自适应滤波算法J计算机工程与应用,2009,45(32):180182贾洪涛,朱元昌,王 建华.扩展自适应中值滤波器的原理与实现J.中国图象图形学报,2004,9(8):948950.