MATLAB课程设计自适应中值滤波
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
适用标准文案
信息工程系课程设计报告
课程MATLAB课程设计
专业通讯工程
班级 2 级本科二班
学生姓名 1 景学号 114
学生姓名 2 学号 1414
学生姓名 3 王学号 6
学生姓名 4 学号 31
学生姓名 4 学号 02
二〇一四年十二月
目录
目录 (2)
纲要: (3)
重点词: (3)
1. 算法描绘 (3)
1.1 噪声点 (4)
1.2 窗口尺寸选择 (4)
1.3 求滤波窗口内中值,并替代像素点。
(4)
2 程序实现 (5)
2.1 准备和描绘 (5)
2.2 扩大窗口、确立窗口 (6)
2.3 确立最大、最小值和中值 (7)
2.4 中值替代像素点、输出图像 (8)
实验结果 (10)
参照文件 (10)
摘要:经过本次课程设计,主要训练和培育学生综合应用所学MATLAB课程的自适应中值的有关知识,独立学习自适应中值滤波的原理及办理方式。
学会扩大窗口并找到其地区内的中值、最小值、以及最大值,而后用中值取代像素点。
经过自主学习和查阅资料来认识程序的编写及改良,并
用MATLAB进行仿真。
重点词:自适应中值滤波灰度值椒盐噪声像素点 .
1.算法描绘
1.1 噪声点
脉冲噪声是图像办理中常有的一类,中值滤波器对除去脉冲噪声特别有效。
噪声脉冲能够是正的(盐点),也能够是负的(胡椒点),因此也称这类噪声为“椒盐噪声”。
椒盐噪声一般总表现为图像局
部地区的最大值或最小值,而且受污染像素的地点是随机散布的,正负噪声点出现的概率往常相等。
图像噪声点常常对应于局部地区的极值。
1.2 窗口尺寸选择
滤波窗口尺寸的选择影响滤波成效,大尺寸窗口滤波能力强,但细节保持能力较弱;小尺寸窗口能保持图像大批细节但其滤波性能较低。
依据噪声密度的大小自适应地选择滤波窗口能够和缓滤波性能与
细节保持之间的矛盾,同时也增添了算法的时间复杂度。
从形状看来窗口方向要沿着边沿和细节的方向,不可以穿过它们也不可以把它们和四周相差很大的像素包括在同一窗口中不然边沿和细节会被四周像素模糊。
1.3 求滤波窗口内中值,并替代像素点。
设f ij 为点 (i,j) 的灰度 ,A i,j 为目前工作窗口 ,f min 、f max 和 f med 分别为 A i,j 中的灰度最小值、灰度最大值和灰度中值, A max 为预
设的同意最大窗口。
自适应中值滤波算法的基本步骤以下:
1)f min<f med<f max, 则转至第 2 步;不然增大窗口 A i,j 尺寸。
若 A i,j 的尺寸小于 A max 的尺寸 , 则重复第 1 步; 不然输出 f ij 。
2)f min<f ij<f max, 则输出 f ij; 不然输出 f med。
能够看出 , 算法中噪声点的检测和认定是以f min 和f max 为基准的,假如f min<f med<f max,表示 f med 不是噪声 ,接着依据 f min<f ij<f 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.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
for 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; % 下减扩大窗口you=i+omiga; % 右加
shang=j+omiga; % 上加
if zuo<1
zuo=1;
end % 扩大窗口但不出界限
if xia<1
xia=1; % i 为 1、2、3 时 zuo 都是 1 ,
end即是为了不出界限
if you>L%右、下、上运算与左同理you=L;
end
if shang>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;
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
end
end
smin=nanmin(vect1);%nanmin 包括缺失值的样本的最小值smax=nanmax(vect1);%nanmax 包括缺失值的样本的最大值smed=nanmedian(vect1);%nanmedian 包括缺失值的样本的中值2.4 中值替代像素点、输出图像
if (S med-S min)>0&(S max-S med)>0
if S min<M(i,j)&M(i,j)<S max%假如像素点的灰度值介于
flag(i,j)=0;%最大最小之间则flag标志为零else% 意为变为了清楚地像素点
M(i,j)=S med;% 把中值赋给像素点
I(i,j)=S med;
flag(i,j)=0;% 输出 flag标志为零
end%获得清楚地像素点过滤掉噪声点else
omiga=omiga+2;%扩大窗口持续扫描
if omiga>=5%当滤波半径大于5 时不用判断flag11=0;% 直接输出
end
if 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): 224-225.
陈初侠,丁勇,刘栎莉.去除椒盐噪声的自适应开关加权均值滤波[J].计算机工程, 2010,36(4): 210-212.
秦虹,王耀南,朱江,等.一种改良的极值均值自适应滤波算法[J].计算机工程与应用, 2009,45(32): 180-182.
贾洪涛 ,朱元昌 ,王建华 .扩展自适应中值滤波器的原理与实现 [J].中国
图象图形学报 ,2004,9(8):948~950.。