资源描述
信息工程系
课程设计汇报
课 程 MATLAB课程设计
专 业 通信工程
班 级 2级本科二班
学生姓名1 景 学号114
学生姓名2 学号1414
学生姓名3 王 学号6
学生姓名4 学号31
学生姓名4 学号02
二〇一四年十二月
目录
目录 2
摘要: 3
关键词: 3
1.算法描述 4
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].计算机工程, ,36(12):224-225.
陈初侠,丁勇,刘栎莉.去除椒盐噪声自适应开关加权均值滤波[J].计算机工程,,36(4):210-212.
秦虹,王耀南,朱江,等.一个改善极值均值自适应滤波算法[J].计算机工程和应用,,45(32):180-182.
贾洪涛,朱元昌,王 建华.扩展自适应中值滤波器原理和实现[J].中国图象图形学报,,9(8):948~950.
展开阅读全文