MATLAB课程设计自适应中值滤波.docx
- 文档编号:3049377
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:7
- 大小:88.34KB
MATLAB课程设计自适应中值滤波.docx
《MATLAB课程设计自适应中值滤波.docx》由会员分享,可在线阅读,更多相关《MATLAB课程设计自适应中值滤波.docx(7页珍藏版)》请在冰豆网上搜索。
MATLAB课程设计自适应中值滤波
MATLAB课程设计(自适应中值滤波)
信息工程系
课程设计报告
课程MATLAB课程设计
专业通信工程
班级2级本科二班
学生姓名1景学号114
学生姓名2学号1414
摘要:
通过本次课程设计,主要训练和培养学生综合应用所学MATLAB课程的自适应中值的相关知识,独立学习自适应中值滤波的原理及处理方式。
学会扩大窗口并找到其区域内的中值、最小值、以及最大值,然后用中值代替像素点。
通过自主学习和查阅资料来了解程序的编写及改进,并用MATLAB进行仿真。
关键词:
自适应中值滤波灰度值椒盐噪声
像素点.
1.算法描述
1.1噪声点
脉冲噪声是图像处理中常见的一类,中值滤波器对消除脉冲噪声非常有效。
噪声脉冲可以是正的(盐点),也可以是负的(胡椒点),所以也称这种噪声为“椒盐噪声”。
椒盐噪声一般总表现为图像局部区域的最大值或最小值,并且受污染像素的位置是随机分布的,正负噪声点出现的概率通常相等。
图像噪声点往往对应于局部区域的极值。
1.2窗口尺寸选择
滤波窗口尺寸的选择影响滤波效果,大尺寸窗口滤波能力强,但细节保持能力较弱;小尺寸窗口能保持图像大量细节但其滤波性能较低。
根据噪声密度的大小自适应地选择滤波窗口可以缓和滤波性能与细节保持之间的矛盾,同时也增加了算法的时间复杂度。
从形状看来窗口方向要沿着边缘和细节的方向,不能穿过它们也不能把它们和周围相差很大的像素包含在同一窗口中否则边缘和细节会被周围像素模糊。
1.3求滤波窗口内中值,并替换像素点。
设fij为点(i,j)的灰度,Ai,j为当前工作窗口,fmin、fmax和fmed分别为Ai,j中的灰度最小值、灰度最大值和灰度中值,Amax为预设的允许最大窗口。
自适应中值滤波算法的基本步骤如下:
1)fmin 若Ai,j的尺寸小于Amax的尺寸,则重复第1步;否则输出fij。 2)fmin 可以看出,算法中噪声点的检测和认定是以fmin和fmax为基准的,如果fmin 2程序实现 2.1准备和描述 clear;%清除工作空间的变量 I=imread('I3_256.bmp');%输入图像 I=imnoise(I,'salt&pepper',0.7);%加入椒盐噪声点密度为0.7 imshow(I)%显示图像 figure;%控制窗口数量先显示一个 M=I;%赋给M I=double(I);%确定精度提高精度 M=double(M); flag11=1;%11是(1,1)是开始的点 H=512;%H为高,L为长 L=512;%像素为512*512 fori=1: H%for从1到512 forj=1: L flag(i,j)=1;%所有点都假定为噪点 end end 2.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;%上加 ifzuo<1 zuo=1; end%扩大窗口但不出边界 ifxia<1 xia=1;%i为1、2、3时zuo都是1, end便是为了不出边界 ifyou>L%右、下、上运算与左同理 you=L; end ifshang>H 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-1为去掉中心点 kn=1; forin=zuo: you%zuo: youxia: shang为横纵向扫描 forjn=xia: shang if((in==i&jn==j)==0)%“与”00、01、10满足if vect1(1,kn)=I(in,jn);%把灰度值赋给vect1 kn=kn+1; end end end smin=nanmin(vect1);%nanmin包含缺失值的样本的最小值smax=nanmax(vect1);%nanmax包含缺失值的样本的最大值 smed=nanmedian(vect1);%nanmedian包含缺失值的样本的中值 2.4中值替换像素点、输出图像 if(Smed-Smin)>0&(Smax-Smed)>0 ifSmin flag(i,j)=0;%最大最小之间则flag标记为零 else%意为变成了清晰地像素点 M(i,j)=Smed;%把中值赋给像素点 I(i,j)=Smed; flag(i,j)=0;%输出flag标记为零 end%得到清晰地像素点过滤掉噪声点 else omiga=omiga+2;%扩大窗口继续扫描 ifomiga>=5%当滤波半径大于5时不用判断 flag11=0;%直接输出 end ifomiga>=17%当滤波半径很大时不再判断 flag11=0; M(i,j)=Smed;%直接等于中值输出 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): 224-225. 陈初侠,丁勇,刘栎莉.去除椒盐噪声的自适应开关加权均值滤波[J].计算机工程,2010,36(4): 210-212. 秦虹,王耀南,朱江,等.一种改进的极值均值自适应滤波算法[J].计算机工程与应用,2009,45(32): 180-182. 贾洪涛,朱元昌,王建华.扩展自适应中值滤波器的原理与实现[J].中国图象图形学报,2004,9(8): 948~950.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 课程设计 自适应 中值 滤波