您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > matlab《数字图像处理》第7章空间域滤波
第7章空间域滤波2学习重点图像平滑图像锐化中值滤波3学习内容7.1引言7.2线性空间滤波7.3非线性空间滤波41空间域滤波增强定义:空间域滤波增强采用模板处理方法对图像进行滤波,去除图像噪声或增强图像的细节。模板本身被称为空间滤波器7.1引言5空域滤波是将邻域内的图像像素值同对应的与邻域有相同维数的子图像值相作用子图像亦称作:filter(滤波器)、mask(掩模)、kernel(核)、template(模板)、window(窗)627283平滑和锐化滤波器模糊处理:去除图像中一些不重要的细节减少噪声平滑空间滤波器的作用:93平滑和锐化滤波器线性滤波器:均值滤波器非线性滤波器最大值滤波器中值滤波器最小值滤波器平滑空间滤波器的分类:10突出图像中的细节,增强了被模糊的细节;印刷中的细微层次强调。弥补扫描对图像的钝化;超声探测成像,分辨率低,边缘模糊,通过锐化来改善图像识别中,分割前的边缘提取锐化处理过度处理的钝化,曝光不足的图像尖端武器的目标识别、定位锐化空间滤波器的作用:114相关和卷积124相关和卷积相关是指掩模w按下页图所示的方式在图像f中移动的过程卷积是相同的过程,只是在图像中移动w前,要将w旋转180度。若函数对称移动,则卷积和相关操作会产生相同的结果13147.2线性空间滤波1imfilter——实现线性空间滤波函数的语法g=imfilter(f,w,filtering_mode,boundary_option,size_options)f是输入图像,w是滤波掩模,g为滤波结果filtering_mode制定滤波过程中是使用相关(corr)还是卷积(conv)boundary_option用于处理边界填充零问题,边界的大小由滤波器的大小确定。size_options可以是’same’或’full’15filtering_mode:相关(corr),该值是默认值,卷积(conv)boundary_option:P输入图像的边界通过用值p(无引号)来填充来扩展。P的默认值是0‘replicate’图像大小通过复制外边界的值来扩展‘symmetric’图像大小通过镜像反射其边界来扩展‘circular’图像大小通过将图像看成是一个二维周期函数的一个周期来扩展16size_options:‘full’输出图像的大小与被扩展图像的大小相同‘same’输出图像的大小与输入图像的大小相同。该值为默认值172imfilter通用语法g=imfilter(f,w,‘replicate’)对旋转过的滤波器执行相关操作与对原始滤波器进行卷积操作是相同的;若滤波器关于其中心对称,则两个选项将产生同样的结果18在使用预先旋转的滤波器或对称的滤波器时,希望执行相关,就有两种方法:第一:g=imfilter(f,w,‘conv’,‘replicate’)第二:使用函数rot90(w,2),将图像旋转180°,然后使用g=imfilter(f,w,‘replicate’)19滤波后的图像的每个元素使用双精度浮点算术进行计算。然而,imfilter会将输出图像转换为与输入图像相同的类型。若f是一个整数数组,则输出中超过整型范围的元素将被截断,且小数部分会四舍五入。若结果要求更高的精度,则f需要在使用函数imfilter之前利用im2double或double转换为double类型。20例子:使用函数imfilterf是一副double类型图像,大小为512*512像素21f=zeros(512);f(1:256,256:512)=1;f(256:512,1:256)=1;imshow(f)用一个大小为31*31的简单滤波器W=ones(31);该滤波器近似为一个平均滤波器22w=ones(31);gd=imfilter(f,w);figure()imshow(gd,[])gc=imfilter(f,w,'circular');figure()imshow(gc,[])23gr=imfilter(f,w,'replicate');figure()imshow(gr,[])gs=imfilter(f,w,'symmetric');figure()imshow(gs,[])24f8=im2uint8(f);g8r=imfilter(f8,w,'replicate');figure,imshow(g8r,[])解决方法归一化系数,w0=1/(31.^2)*w或是以im2double格式输入数据253图像处理工具箱的标准线性空间滤波器工具箱支持一些预定义的二维线性空间滤波器,可由函数fspecial来实现。用来生成滤波掩模w的函数fspecial的语法为:w=fspecial(‘type’,parameters)‘type’表示滤波器类型‘parameters’进一步定义了指定的滤波器26函数fspecial支持的空间滤波器1)fspecial(‘average’,[rc]).大小为r*c的一个矩形平均滤波器。默认值为3*3.若由一个数来代替[rc],则表示方形滤波器2)fspecial(‘disk’,r).一个圆形平均滤波器(包含在2r+1大小的正方形内),半径为r。默认半径为53)fspecial(‘gaussian’,[rc],sig).一个大小为r*c的高斯低通滤波器,标准偏差为sig(正)。默认值为3*3和0.5.若由一个数来代替[rc],则表示方形滤波器27函数fspecial支持的空间滤波器4)fspecial(‘log’,[rc],sig).一个大小为r*c的高斯-拉普拉斯(loG)滤波器,标准偏差为sig(正)。默认值为5*5和0.5..若由一个数来代替[rc],则表示方形滤波器5)fspecial(‘prewitt’).输出一个大小为3*3的prewitt掩模wv,它近似于垂直梯度。水平梯度掩模可以通过置换结果wh=wv’获得6)fspecial(‘sobel’).输出一个大小为3*3的sobel掩模sv,它近似于垂直梯度。水平梯度掩模可以通过置换结果sh=sv’获得283均值滤波器293均值滤波器左图是标准的像素平均值右图是像素的加权平均,表明一些像素更为重要303均值滤波器31以模块运算系数表示即:32常用的模板:1111211111011H1212421211612H111101111813H0010041414141214H33均值滤波器例134均值滤波器例2354锐化滤波器微分滤波器的原理36微分滤波器的原理37385拉普拉斯算子395拉普拉斯算子405拉普拉斯算子(2)4142锐化(拉普拉斯)滤波器例3f=imread('moon.tif');imshow(f)w4=fspecial('laplacian',0);w8=[1,1,1;1,-8,1;1,1,1];f=im2double(f);g4=f-imfilter(f,w4,'replicate');g8=f-imfilter(f,w8,'replicate');imshow(f)figure,imshow(g4)figure,imshow(g8)43原图像44使用中心为-4的拉普拉斯滤波器增强后的图像45使用中心为-8的拉普拉斯滤波器增强后的图像466梯度算子(非线性锐化滤波器)476梯度算子48例:梯度用于边缘增强49•在图像的一阶导数运算中,一阶导数通常产生较厚的边缘。•一阶导数对灰度阶跃有较强的响应。•二阶导数对细微结构有较强的响应,如细线和孤立点。•二阶导数在灰度级阶跃变化时产生双响应。•二阶导数对线的响应比对阶跃的响应强,对点的响应比对线强。导数的性质507.3非线性空间滤波1ordfilt2——实现非线性空间滤波ordfilt2函数可以生成统计排序(order-statistic)滤波器(也称为排序滤波器,rankfilter).他们都是非线性滤波器,其响应基于对图象邻域中所包含的像素进行排序,然后使用排序结果确定的值来替代领域中的中心像素的值。512统计排序滤波器是一种非线性滤波器基于滤波器所在图象区域中像素的排序,由排序结果决定的值代替中心像素的值分类:最大值滤波器:用像素邻域内的最大值代替该像素中值滤波器:用像素邻域内的中间值代替该像素最小值滤波器:用像素邻域内的最小值代替该像素522统计排序滤波器532统计排序滤波器543中值滤波的原理55564中值滤波的实现将模板区域内的像素排序,求出中间值574中值滤波的实现585中值滤波的特点在去除噪声的同时,可以比较好地保留边的锐度和图像的细节(优于均值滤波器)能够有效去除脉冲噪声:以黑白点叠加在图像上596ordfilt2——实现非线性空间滤波函数的语法g=ordfilt2(f,order,domain)f是输入图像使用邻域的一组排列元素中的第order个元素来替代f中的每个元素,而该邻域则由domain中的非零元素指定。601)实现大小为m*n的最小滤波器g=ordfilt2(f,1,ones(m,n))1表示mn个样本中的第一个样本,ones(m,n)创建了一个元素值为1,大小为m*n的矩阵,表明邻域内的所有样本都将用于计算。在统计学术语中,最小滤波器(一组排序元素中的第一个样本值)称为第0个百分位。同样,第100个百分位指的就是一组排序元素中的最后一个样本值,即第mn个样本。612)实现大小为m*n的最大滤波器g=ordfilt2(f,m*n,ones(m,n))3)实现中值滤波器数字图像处理中最著名的统计排序滤波器是中值滤波器,它对应的是第50个百分位。g=ordfilt2(f,median(1:m*n),ones(m,n))median(1:m*n)简单地计算序列1,2,…,m*n的中值。623)实现中值滤波器基于实际应用中的重要性,工具箱提供一个二维中值滤波器函数:g=medfilt2(f,[mn],padopt)数组[mn]定义了一个大小为m*n的邻域,中值就在该邻域上计算;Padopt指定了三个可能的边界填充选项之一:‘zeros’:默认值‘symmetric’:f按照镜像反射方式对称地沿其边界扩展‘indexed’:若f是double类图像,用1来填充图像,否则以0来填充图像。633)实现中值滤波器g=medfilt2(f)使用一个大小为3*3的邻域来计算中值,并用0来填充输入图像的边界64例:使用函数medfilt2进行中值滤波中值滤波是降低图像椒盐噪声的有效工具f=imread('rice.png');figure,imshow(f);fn=imnoise(f,'salt&pepper',0.2);figure,imshow(fn);gm=medfilt2(fn);figure,imshow(gm);gms=medfilt2(fn,'symmetric');figure,imshow(gms);65(a)原图像(b)添加椒盐噪的图像66(c)默认中值滤波处理结果(d)’symmetric’处理结果67例:最大值滤波器68例:最小值滤波器69小结1掌握空间域滤波的定义2掌握图像平滑和锐化处理3掌握顺序滤波中的中值滤波
本文标题:matlab《数字图像处理》第7章空间域滤波
链接地址:https://www.777doc.com/doc-2886925 .html