您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > MATLAB课程设计(自适应中值滤波)
实用标准文案文档大全信息工程系课程设计报告课程MATLAB课程设计专业通信工程班级2级本科二班学生姓名1景学号114学生姓名2学号1414学生姓名3王学号6学生姓名4学号31学生姓名4学号02二〇一四年十二月实用标准文案文档大全目录目录.............................................2摘要:......................................3关键词:....................................31.算法描述.......................................31.1噪声点.....................................41.2窗口尺寸选择...............................41.3求滤波窗口内中值,并替换像素点。...........42程序实现........................................52.1准备和描述.................................52.2扩大窗口、确定窗口.........................62.3确定最大、最小值和中值.....................72.4中值替换像素点、输出图像..................8实验结果........................................10参考文献........................................10实用标准文案文档大全摘要:通过本次课程设计,主要训练和培养学生综合应用所学MATLAB课程的自适应中值的相关知识,独立学习自适应中值滤波的原理及处理方式。学会扩大窗口并找到其区域内的中值、最小值、以及最大值,然后用中值代替像素点。通过自主学习和查阅资料来了解程序的编写及改进,并用MATLAB进行仿真。关键词:自适应中值滤波灰度值椒盐噪声像素点.实用标准文案文档大全1.算法描述1.1噪声点脉冲噪声是图像处理中常见的一类,中值滤波器对消除脉冲噪声非常有效。噪声脉冲可以是正的(盐点),也可以是负的(胡椒点),所以也称这种噪声为“椒盐噪声”。椒盐噪声一般总表现为图像局部区域的最大值或最小值,并且受污染像素的位置是随机分布的,正负噪声点出现的概率通常相等。图像噪声点往往对应于局部区域的极值。1.2窗口尺寸选择滤波窗口尺寸的选择影响滤波效果,大尺寸窗口滤波能力强,但细节保持能力较弱;小尺寸窗口能保持图像大量细节但其滤波性能较低。根据噪声密度的大小自适应地选择滤波窗口可以缓和滤波性能与细节保持之间的矛盾,同时也增加了算法的时间复杂度。从形状看来窗口方向要沿着边缘和细节的方向,不能穿过它们也不能把它们和周围相差很大的像素包含在同一窗口中否则边缘和细节会被周围像素模糊。1.3求滤波窗口内中值,并替换像素点。设fij为点(i,j)的灰度,Ai,j为当前工作窗口,fmin、fmax和fmed分别为Ai,j中的灰度最小值、灰度最大值和灰度中值,Amax为预实用标准文案文档大全设的允许最大窗口。自适应中值滤波算法的基本步骤如下:1)fminfmedfmax,则转至第2步;否则增大窗口Ai,j尺寸。若Ai,j的尺寸小于Amax的尺寸,则重复第1步;否则输出fij。2)fminfijfmax,则输出fij;否则输出fmed。可以看出,算法中噪声点的检测和认定是以fmin和fmax为基准的,如果fminfmedfmax,表明fmed不是噪声,接着根据fminfijfmax判断fij是否是噪声,当fij与fmed都不是脉冲噪声时,优先输出fij。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);%确定精度提高精度M=double(M);flag11=1;%11是(1,1)是开始的点H=512;%H为高,L为长实用标准文案文档大全L=512;%像素为512*512fori=1:H%for从1到512forj=1:Lflag(i,j)=1;%所有点都假定为噪点endend2.2扩大窗口、确定窗口fori=1:H%大循环%i为横坐标j为纵坐标forj=1:L%大循环omiga=2;%omiga=2是最大滤波半径%%%%%%%%确定窗口whileflag(i,j)==1%循环恒为一一直执行zuo=i-omiga;%左减xia=j-omiga;%下减扩大窗口you=i+omiga;%右加shang=j+omiga;%上加ifzuo1zuo=1;end%扩大窗口但不出边界ifxia1xia=1;%i为1、2、3时zuo都是1,实用标准文案文档大全end便是为了不出边界ifyouL%右、下、上运算与左同理you=L;endifshangHshang=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=25vect1=zeros(1,total-1);%total-1为去掉中心点kn=1;forin=zuo:you%zuo:youxia:shang为横纵向扫描forjn=xia:shangif((in==i&jn==j)==0)%“与”00、01、10满足ifvect1(1,kn)=I(in,jn);%把灰度值赋给vect1kn=kn+1;实用标准文案文档大全endendendsmin=nanmin(vect1);%nanmin包含缺失值的样本的最小值smax=nanmax(vect1);%nanmax包含缺失值的样本的最大值smed=nanmedian(vect1);%nanmedian包含缺失值的样本的中值2.4中值替换像素点、输出图像if(Smed-Smin)0&(Smax-Smed)0ifSminM(i,j)&M(i,j)Smax%如果像素点的灰度值介于flag(i,j)=0;%最大最小之间则flag标记为零else%意为变成了清晰地像素点M(i,j)=Smed;%把中值赋给像素点I(i,j)=Smed;flag(i,j)=0;%输出flag标记为零end%得到清晰地像素点过滤掉噪声点elseomiga=omiga+2;%扩大窗口继续扫描ifomiga=5%当滤波半径大于5时不用判断flag11=0;%直接输出endifomiga=17%当滤波半径很大时不再判断实用标准文案文档大全flag11=0;M(i,j)=Smed;%直接等于中值输出flag(i,j)=0;endendend%while%第六页while循环end%大循环%第六页for循环end%大循环%第六页for循环I=uint8(M);%变为8位的无符号整形数据imshow(I);%显示图像实用标准文案文档大全实验结果加入0.7噪点图片经处理后图片:参考文献荆仁杰,叶秀清.计算机图像处理[M].北京:浙江大学出版社,1988:122.韩丽娜,耿国华.基于小波变换的真彩图像降噪与增强[J].计算机工程,2010,36(12):224-225.陈初侠,丁勇,刘栎莉.去除椒盐噪声的自适应开关加权均值滤波[J].计算机工程,2010,36(4):210-212.秦虹,王耀南,朱江,等.一种改进的极值均值自适应滤波算法[J].计算机工程与应用,2009,45(32):180-182.贾洪涛,朱元昌,王建华.扩展自适应中值滤波器的原理与实现[J].中国图象图形学报,2004,9(8):948~950.
本文标题:MATLAB课程设计(自适应中值滤波)
链接地址:https://www.777doc.com/doc-5245813 .html