1、1第三章第三章 亮度变换与空间滤波亮度变换与空间滤波 图像增强图像增强(image enhancement)的目的:改进图)的目的:改进图像使之更适合于特定应用像使之更适合于特定应用两大类方法:两大类方法:空间域空间域(spatial domain)方法:直接对像素操作)方法:直接对像素操作 频率域频率域(frequency domain)方法:对变换域操作)方法:对变换域操作 处理技术的选择和效果评价一般依赖处理技术的选择和效果评价一般依赖主观判断主观判断和和具体应用具体应用场合。场合。2背景知识背景知识 空间域处理的数学表达式:空间域处理的数学表达式:g(x,y)=Tf(x,y)其中其中f
2、(x,y)是输入图像,是输入图像,g(x,y)是输出图像,是输出图像,T是是f上上作用于作用于(x,y)邻域的算子。邻域的算子。类似的二维邻域阵列称为类似的二维邻域阵列称为模模板板(或(或滤波器滤波器、核核、掩模掩模、窗口窗口,masks,filters,kernels,templates,windows)基于模板的图像增强也叫基于模板的图像增强也叫模模板处理板处理(mask processing)或或模板滤波模板滤波(mask filtering)3亮度变换函数亮度变换函数 邻域为邻域为11时成为时成为点处理点处理(point processing),),T成为一个成为一个灰度级变换函数灰度
3、级变换函数:s=T(r)其中其中r为变换前像素在图像为变换前像素在图像f中的灰度级,中的灰度级,s为变换为变换后像素在图像后像素在图像g中的灰度级。中的灰度级。对比度拉伸阈值函数灰度级变换空域增强灰度级变换空域增强在在MATLAB中,使用函数中,使用函数imadjust进行亮度变换,一般形式:进行亮度变换,一般形式:g=imadjust(f,low_in high_in,low_out high_out,gamma);输入图像类型为输入图像类型为uint8,uint16,或或double,输出与输入同类型;,输出与输入同类型;除除f外所有参数取值范围为外所有参数取值范围为0,1;low_in
4、high_in或或low_out high_out可用可用 指定为指定为0 1范围;范围;如果如果high_out low_out,则输出灰度反转。,则输出灰度反转。45灰度级变换空域增强灰度级变换空域增强 图像反转图像反转(image negatives):s=L 1 r 适于增强埋没于黑暗区域内的白色或灰色细节,特别适于增强埋没于黑暗区域内的白色或灰色细节,特别是当黑色区域占主导地位时是当黑色区域占主导地位时 具有底片效果具有底片效果灰度反转图像img1=imread(x-ray.jpg);figure(Name,original image);imshow(img1);figure(Na
5、me,negative image);img2=imcomplement(img1);imshow(img2);img2=imadjust(img1,0 1,1 0)img2=imadjust(img1,0.5 0.75,0 1)6灰度级变换空域增强灰度级变换空域增强 对数变换对数变换(log transformation):s=c log(1+r)压缩高亮度区而拉伸低亮度区(反对数变换与此恰好压缩高亮度区而拉伸低亮度区(反对数变换与此恰好相反)相反)适于宽动态范围图像适于宽动态范围图像,减少动态范围减少动态范围.对数变换效果图像7灰度级变换空域增强灰度级变换空域增强 幂次变换幂次变换(pow
6、er-law transformation):s=c r 1时正好相反时正好相反 适于校正一些适于校正一些图像输入输出图像输入输出设备设备(伽马校正伽马校正)8灰度级变换空域增强灰度级变换空域增强 幂次变换幂次变换对比增强对比增强:原图像 3.0 4.0 5.0航拍图像的幂次变换对比增强(c=1)9灰度级变换空域增强灰度级变换空域增强分段线性变换分段线性变换(piecewise-linear transformation):可描述任意复杂可描述任意复杂的变换形式的变换形式实例:对比拉伸实例:对比拉伸a.变换函数变换函数b.低对比度图像低对比度图像c.对比度拉伸对比度拉伸d.门限化结果门限化结果
7、bcad灰度级变换空域增强灰度级变换空域增强 对比度拉伸(对比度拉伸(contrast stretching)10原始图像对比度拉伸图像0123456x 1040500100015002000250030003500400045000123456x 104050010001500200025003000350040004500灰度级变换空域增强灰度级变换空域增强11img1=imread(AllKnives.tif);figure(Name,original image);imshow(img1);figure;imhist(img1)figure(Name,streching image);
8、minV=double(min(min(img1)/65535;maxV=double(max(max(img1)/65535;img2=imadjust(img1,minV,maxV,);imshow(img2);figure;imhist(img2)MATLAB代码:代码:12灰度级变换空域增强灰度级变换空域增强位平面切割位平面切割(bit-plane slicing):将数字图像分解为将数字图像分解为位平面位平面 bitset(x(i,j,1),weizhi,w1(i,j),bitget(uint8(yy(i,j,1),weizhi);帮助分析每一位所起的作用,判断所用位数是否足够帮助分
9、析每一位所起的作用,判断所用位数是否足够可用于图像压缩可用于图像压缩13灰度级变换空域增强灰度级变换空域增强位平面切割位平面切割原图像76543210补充补充LSBLSB隐写实例,隐写实例,利用利用MSBMSB与与LSBLSB直方图处理直方图处理 直方图直方图(histogram):离散函数离散函数h(rk)=nk,rk为第为第k级灰度,级灰度,nk为灰度级为为灰度级为rk的像的像素个数。素个数。为各灰度级像素总数。为各灰度级像素总数。归一化的直方图归一化的直方图(normalized histogram):p(rk)=h(rk)/n=nk/n,对应灰度级对应灰度级rk的概率估计值的概率估计值
10、 反映了图像的统计特性,可用于增强、压缩、分割等反映了图像的统计特性,可用于增强、压缩、分割等 算法实现简单快速,便于硬件实现和实时处理算法实现简单快速,便于硬件实现和实时处理14()kkh rn()1kkp r 15直方图计算直方图计算3102332023320233202331013rk0123h(rk)53710p(rk)0.20.12 0.28 0.416直方图实例直方图实例 在全灰度级上均衡分布的直方图所对应图像一般在全灰度级上均衡分布的直方图所对应图像一般对比度高对比度高直方图均衡化直方图均衡化图像增强图像增强17直方图均衡化直方图均衡化 直方图均衡化直方图均衡化(histogra
11、m equalization):改变图像直方改变图像直方图分布,使之均衡分布于全图分布,使之均衡分布于全灰度区间。灰度区间。先考虑归一化的连续灰度情先考虑归一化的连续灰度情况:况:s=T(r)为为单调增函数单调增函数 基本思想:设计一灰度变换基本思想:设计一灰度变换函数函数s=T(r)0,1,实现,实现pr(r)ps(s)=1。,0,1r s180()=(),()=1)/()()()()rsrsrrpsdsprdrpsdsdrTrprsT rpw dw直方图均衡化直方图均衡化 T(r)是是r的累积分布函数,可验证的累积分布函数,可验证T(r)单调递增单调递增drds19直方图均衡化直方图均衡化
12、 离散情形:离散情形:然后然后将将s映射回映射回0,L-1区间并取整区间并取整。此过程称为。此过程称为直方图均直方图均衡化衡化或或直方图线性化直方图线性化。一般做不到象连续情形那样完全平均分布,只是尽可能均衡一般做不到象连续情形那样完全平均分布,只是尽可能均衡0()()rrjsT rpj直方图均衡化直方图均衡化 在在MATLAB中,函数中,函数histeq提供此功能,其一般形式为:提供此功能,其一般形式为:g=histeq(f,nlev)其中其中f为输入图像,为输入图像,nlev为输出灰度级,为输出灰度级,20 f=imread(pollen.tif);imshow(f)figure,imhi
13、st(f)ylim(auto)g=histeq(f,256);figure,imshow(g)figure,imhist(g)ylim(auto)21直方图均衡化实例直方图均衡化实例22直方图均衡化实例直方图均衡化实例23直方图均衡化实例直方图均衡化实例24直方图均衡化实例直方图均衡化实例25直方图规定化直方图规定化 直方图匹配(规定化)直方图匹配(规定化)histogram matching(specification):使图像具有规定的直方图分布。使图像具有规定的直方图分布。基本思想:原始直方图为基本思想:原始直方图为pr(r),指定直方图,指定直方图为为pz(z),寻找一灰度级变换函数,
14、寻找一灰度级变换函数z=F(r),实现实现 pr(r)pz(z)有直方图均衡化,还需要直方图匹配操作吗?有直方图均衡化,还需要直方图匹配操作吗?26直方图规定化直方图规定化27直方图规定化直方图规定化?28直方图规定化直方图规定化 方法设计方法设计先考虑归一化的连续灰度情况:先考虑归一化的连续灰度情况:0()()rrsT rpw dw(1)0()()zzG zpt dts(2)11()()zGsGT r(3)连续情形下直方图规定化步骤:连续情形下直方图规定化步骤:rT(r)sG-1(s)zT(r)与与G-1(s)解析解析式一般不存在式一般不存在29直方图规定化直方图规定化 离散情形:离散情形:
15、11()()zGsGT r(3)0()()zzjG zpjs(2)0()()rrjsT rpj(1)离散情形下直方图规定化步骤:离散情形下直方图规定化步骤:rT(r)sG-1(s)zT(r)与与G-1(s)可通可通过查表计算过查表计算直方图规定化直方图规定化rr0r1rL-1ss0s1sL-1zz0z1zL-130如何建立如何建立?31直方图规定化直方图规定化 对于给定的对于给定的sk,不一定存在,不一定存在zk精确满足精确满足 G(zk)=sk 解决办法:寻找满足解决办法:寻找满足的最小的最小 ,并取,并取zk=G(z)隐含一个叠加过程(隐含一个叠加过程()对对k=k+1,只需从,只需从 开
16、始叠加。开始叠加。0()()zzjG zpj 0kGzs z zkzz32直方图规定化直方图规定化直方图规定化的完整步骤:直方图规定化的完整步骤:1.计算原图像直方图计算原图像直方图pr(r)2.利用利用获得下表:获得下表:0()()rrjsT rpjrr0r1rL-1ss0s1sL-133直方图规定化直方图规定化3.根据规定的根据规定的pz(z),进一步利用,进一步利用获得下表:获得下表:4.利用上表进行灰度级变换利用上表进行灰度级变换rz。0kGzsrr0r1rL-1ss0s1sL-1zz0z1zL-134直方图规定化实例直方图规定化实例?35直方图规定化实例直方图规定化实例1:pr(r)
17、2:s=T(r)36直方图规定化实例直方图规定化实例G(z)G-1(s)3:G(zk)-sk04:r zMATLAB函数:函数:h=histeq(f,hgram);37空间滤波空间滤波 空间滤波空间滤波:利用基于:利用基于空间邻域空间邻域的运算实现滤波的运算实现滤波 该邻域称为该邻域称为滤波器滤波器(filter)、掩掩模模(mask)、核核(kernel)、模板模板(template)或或窗口窗口(window),滤,滤波器中的值称为波器中的值称为系数系数(coefficient)点点(x,y)处的处的线性滤波线性滤波响应响应R为:为:(1,1)(1,1)(1,0)(1,).(0,0)(,)
18、.(1,0)(1,)(1,1)(1,1)Rwf xywf xywf x ywf xywf xy 为何这是线性滤波为何这是线性滤波?38空间滤波基础空间滤波基础 一般线性滤波器大小为一般线性滤波器大小为mn,其中,其中m=2a+1,n=2b+1,a,b为正整数。为正整数。线性滤波公式为一线性滤波公式为一卷积卷积(convolution):对图像中每个像素重复该滤波运算即实现整幅图像的线对图像中每个像素重复该滤波运算即实现整幅图像的线性滤波。性滤波。边界处理:边界处理:方法方法1:掩模不超出图像边界(图像略微变小):掩模不超出图像边界(图像略微变小)方法方法2:允许掩模的一部分超出边界,运算中只采
19、用位于:允许掩模的一部分超出边界,运算中只采用位于图像范围内的系数图像范围内的系数方法方法3:进行边界填充或复制:进行边界填充或复制(,)(,)(,)absa tbg x yw s t f xs yt 39平滑空间滤波器平滑空间滤波器 平滑空间滤波器平滑空间滤波器:对图像进行平滑处理,以去除:对图像进行平滑处理,以去除较小尺度的噪声及细节的空间滤波器较小尺度的噪声及细节的空间滤波器 平滑线性滤波器平滑线性滤波器(smoothing linear filter)设计:利设计:利用线性滤波计算邻域内像素平均值用线性滤波计算邻域内像素平均值 也称也称均值滤波器均值滤波器(averaging filt
20、er)对应对应低通滤波器低通滤波器(lowpass filter)相邻像素灰度级过渡更为平缓,降低噪声相邻像素灰度级过渡更为平缓,降低噪声 减少小尺度细节减少小尺度细节 副作用:目标边缘可能变模糊副作用:目标边缘可能变模糊40均值滤波器实例均值滤波器实例盒滤波器盒滤波器加权平均滤波器加权平均滤波器(,)(,)(,)(,)absa tbabsa tbw s t f xs ytg x yw s t 滤波公式:滤波公式:41均值滤波实例均值滤波实例 随着均值滤波随着均值滤波掩模增大,噪掩模增大,噪声和不相关细声和不相关细节被更好滤除节被更好滤除,但感兴趣的,但感兴趣的目标边缘也更目标边缘也更模糊模糊
21、 具体问题具体具体问题具体分析,根据需分析,根据需要选用要选用原图像原图像99均值滤波均值滤波3535均值滤波均值滤波33均值滤波均值滤波(图像大小:(图像大小:500500像素)像素)42均值滤波实例均值滤波实例原图像原图像均值滤波后均值滤波后MATLAB空间滤波函数空间滤波函数43 g=imfilter(f,w,filtering_mode,boundary_options,size_options)f:输入图像输入图像 w:空间滤波模板空间滤波模板 filtering_mode:滤波模式,:滤波模式,corr相关滤波(默认相关滤波(默认选项),选项),conv卷积滤波卷积滤波 bound
22、ary_options:X填充值为填充值为X(默认选项为(默认选项为X=0),),replicate复制外边界,复制外边界,symmetric对称对称扩展,扩展,circular循环扩展循环扩展 size_options:full结果为完全大小,包括扩展后的结果为完全大小,包括扩展后的部分,部分,same结果与原图像同大小(默认选项)结果与原图像同大小(默认选项)44非线性空间滤波非线性空间滤波 统计排序滤波器统计排序滤波器(order-statistics filter):对滤波器覆盖的:对滤波器覆盖的图像区域中的像素排序,然后由统计排序结果决定的值代图像区域中的像素排序,然后由统计排序结果
23、决定的值代替中心像素的值。替中心像素的值。属于非线性滤波器属于非线性滤波器 中值滤波器中值滤波器(median filter):排序结果取:排序结果取中间值中间值的统计排序的统计排序滤波器。滤波器。降噪能力强,模糊图像的副作用相对类似大小的线性降噪能力强,模糊图像的副作用相对类似大小的线性平滑滤波器更小平滑滤波器更小 对对脉冲噪声脉冲噪声(impulse noise),或称,或称椒盐噪声椒盐噪声(salt-and-pepper noise)特别有效,可滤除小于掩模大小一半的此特别有效,可滤除小于掩模大小一半的此类噪声类噪声 类似可有类似可有最大值滤波器最大值滤波器(max filter)和和最
24、小值滤波器最小值滤波器(min filter)45中值滤波实例中值滤波实例叠加椒盐噪声的图像叠加椒盐噪声的图像33均值滤波结果均值滤波结果33中值滤波结果中值滤波结果MATLAB中值滤波函数:中值滤波函数:F=imnoise(f,salt&pepper,0.2);g=medfilt2(f,m n,padopt)46数字图像的微分运算数字图像的微分运算 在数字图像处理中,用差分代替微分,其定义对不同灰度在数字图像处理中,用差分代替微分,其定义对不同灰度变化区域应满足:变化区域应满足:恒定区域恒定区域变化始末变化始末均匀变化中均匀变化中一阶微分一阶微分零零非零非零非零非零二阶微分二阶微分零零非零非
25、零零零(1)()ff xf xx一阶微分定义(一维)一阶微分定义(一维)二阶微分定义(一维)二阶微分定义(一维)22(1)(1)2()ff xf xf xx是否满足表中的微分定义要求?是否满足表中的微分定义要求?47 一阶微分和二阶微分的比较一阶微分和二阶微分的比较:(1)一阶微分处理通常会产生较宽的边缘一阶微分处理通常会产生较宽的边缘(2)二阶微分处理对细节有较强的响应二阶微分处理对细节有较强的响应,如细线和如细线和孤立点孤立点(3)一阶微分处理一般对灰度阶梯有较强的响应一阶微分处理一般对灰度阶梯有较强的响应(4)二阶微分处理对灰度级阶梯变化产生双响应二阶微分处理对灰度级阶梯变化产生双响应(
26、5)二阶微分在图像中灰度值变化相似时二阶微分在图像中灰度值变化相似时,对线的对线的响应要比对阶梯强响应要比对阶梯强,且对点比对线强且对点比对线强.48锐化空间滤波器锐化空间滤波器 二阶微分的图像增强二阶微分的图像增强 拉普拉斯算子拉普拉斯算子(the Laplacian)22222fffxy最简单的各向同性微分算子,并且是一个线性操作最简单的各向同性微分算子,并且是一个线性操作 拉普拉斯算子的离散形式:拉普拉斯算子的离散形式:22(1)(1)2()ff xf xf xx22(1)(1)2()ff yf yf yyx方向方向y方向方向2(1,)(1,)(,1)(,1)4(,)ff xyf xyf
27、 x yf x yf x y49拉普拉斯算子拉普拉斯算子 拉普拉斯微分算子拉普拉斯微分算子强调图像中灰度的突变,弱化灰度慢变强调图像中灰度的突变,弱化灰度慢变化的区域化的区域,形成一幅把灰色边线、突变点叠加到暗背景中,形成一幅把灰色边线、突变点叠加到暗背景中的图像。的图像。W=fspecial(laplacian,0);g=imfilter(f,w,replicate);50拉普拉斯算子图像增强拉普拉斯算子图像增强abcd22(,)(,)(,)(,)(,)f x yf x yg x yf x yf x y将原始图像和拉普拉斯图像叠加在一起可以在保留拉普拉将原始图像和拉普拉斯图像叠加在一起可以在
28、保留拉普拉斯锐化处理效果的前提下复原背景信息。因此拉普拉斯算斯锐化处理效果的前提下复原背景信息。因此拉普拉斯算子用于图像增强的基本方法如下子用于图像增强的基本方法如下:如果掩模中心系数为负如果掩模中心系数为负如果掩模中心系数为正如果掩模中心系数为正拉普拉斯算子的几种形式:拉普拉斯算子的几种形式:51拉普拉斯算子图像增强实例拉普拉斯算子图像增强实例(a)原图像原图像(b)拉普拉斯图像拉普拉斯图像(c)标定标定后的拉普拉斯图后的拉普拉斯图像显示效果像显示效果(d)叠加叠加(a)、(b)的效果的效果abcd52空间变换空间变换Imrotate(x,-40,bilinear,crop);/crop a
29、nd defaultT=1 0 0;.4 1 0;0.2 1;tform=maketform(affine,T);imshow(imtransform(a,tform,bilinear);53Homework:将任意一张本人彩照将任意一张本人彩照(如如name.jpg)完成如下操作,编写源程序完成如下操作,编写源程序并显示所有中间结果。并显示所有中间结果。1、用、用rgb2gray函数将真彩色图像转成灰度图像函数将真彩色图像转成灰度图像2、用、用imresize函数转为函数转为512*512的空间分辩率图像的空间分辩率图像3、进行、进行3*3的均值滤波、的均值滤波、3*3的拉普拉斯滤波和直方图均衡化的拉普拉斯滤波和直方图均衡化4、将自已的签名转成二值图像、将自已的签名转成二值图像(im2bw)后,隐藏在本人的灰度后,隐藏在本人的灰度图图lsb中。中。打印代码和图像显示结果,下一次课期间上交,特别要注意压打印代码和图像显示结果,下一次课期间上交,特别要注意压缩纸张,控制在缩纸张,控制在2页内。页内。