欢迎来到天天文库
浏览记录
ID:28596797
大小:700.00 KB
页数:11页
时间:2018-12-11
《自适应中值滤波课程报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.计算机科学技术系课程设计报告课程自适应中值滤波专业通信工程班级2012级本科一班学生姓名1赵效秀学号1214110104学生姓名2郝雪玲学号1214110117学生姓名3陈炳瑞学号1214110149学生姓名4张增俭学号1214110156学生姓名5陈如辉学号1214110146二〇一三年十一月-..目录I1.算法描述2.程序实现3.变量的改变流程4.程序的解析过程5.注意事项6.实验结果(1)图像(2)数据-..摘要:通过本次课程设计,主要训练和培养学生综合应用所学内容处理课程的滤波器设计的相关知识,独立完成对图片的处
2、理能力。1.算法描述该算法利用极值的方法统计图像噪声点,然后计算以噪声点为中心像素的子窗口的方差。对噪声点采用多窗口,多尺度的滤波。能有效的平滑噪声,保存细节。当噪声面积较大时,通过增加滤窗的大小将噪声予以去除,同时当判断滤窗中心的像素是噪声时,该值用中值代替,否则不改变当前像素值。-..2.程序实现先是读入图像,然后给图像添加椒盐噪声,之后是定义未知量,设置标准图像的大小,之后是一个大循环,这个大循环中有几个小循环,他们的作用分别是确定窗口,最大值最小值,判断噪音点,滤波窗口尺寸增加。到最后输出图像和8位无符号的整形数据
3、(0-255之间)。3.变量的改变流程先是double型,也就是双精度的数据,然后经过零矩阵,滤波窗口变为一维矩阵,到最后输出图像和8位的无符号整形数据。其中smin,smed,smax分别是滤波半径的最小值,中值,最大值,根据最小值和最大值来确定中值。4.程序的实现过程clear;I=imread('standard_lena.bmp');I=imnoise(I,'salt&pepper',0.7);%添加椒盐噪声imshow(I)figure;%控制窗口数量M=I;num=1;%将1赋予未知量num-..I=doubl
4、e(I);%将I转化为双精度M=double(M);%将M转化为双精度flag11=1;H=512;%标准图像的大小(高度)L=512;%标准图像的大小(长度)fori=1:Hforj=1:Lflag(i,j)=1;endend%默认的滤波窗口设定,与图像大小相等%i横坐标%j综坐标fori=1:H%大循环forj=1:L%大循环omiga=2;%改变窗口的未知量%%%%%%%%确定窗口whileflag(i,j)==1%根据flag(i,j)的值改善窗口大小zuo=i-omiga;xia=j-omiga;you=i+om
5、iga;shang=j+omiga;ifzuo<1-..zuo=1;%图片只能从横坐标处的1开始,小于1时图片不能不完整输出。endifxia<1xia=1;%图片只能从纵坐标处的1开始,小于1时图片不能不完整输出。endifyou>Lyou=L;endifshang>Hshang=H;end%%%%%%%窗口确定结束%%%%%%%%%%%确定最大最小值smin=I(i,j);%二维矩阵中的最小值smax=I(i,j);%二维矩阵中的最大值total=(you-zuo+1)*(shang-xia+1);%总的向量个数vec
6、t1=zeros(1,total-1);生成1行total列double类矩阵下面的此循环将二维矩阵窗口转化为一维矩阵的过程kn=1;forin=zuo:you%确定in在窗口内-..forjn=xia:shang%确定jn在窗口内if((in==i&jn==j)==0)%(in==i&jn=j)=1时,继续向下进行,否则结束该循环vect1(1,kn)=I(in,jn);kn=kn+1;endendend%将滤波窗口转化为一维矩阵结束smin=nanmin(vect1);%给出vect1中的最小值smax=nanmax(
7、vect1);%给出vect1中的最大值smed=nanmedian(vect1);%给出vect1中的中值%%%%%%%%%%%确定最大最小值结束下面第一个if是为了判断中值是否为噪音点,如果符合下面要求,继续向下进行,则退出循环,重新确定中值。if(smed-smin)>0&(smax-smed)>0下面的if是为了判断原像素点是否为噪音点,如果符合if条件要求,则输出原像素点,否则将中值付给原像素点。ifsmin8、,j)=smed;flag(i,j)=0;endelse%改变窗口尺度大小的过程omiga=omiga+2;%超过自适应滤波窗口尺寸阈值时(11)用中值代替当前像素值ifomiga>=5flag11=0;endifomiga>=17flag11=0;M(i,j)=smed;flag(i,j)=0;%确定
8、,j)=smed;flag(i,j)=0;endelse%改变窗口尺度大小的过程omiga=omiga+2;%超过自适应滤波窗口尺寸阈值时(11)用中值代替当前像素值ifomiga>=5flag11=0;endifomiga>=17flag11=0;M(i,j)=smed;flag(i,j)=0;%确定
此文档下载收益归作者所有