第四章图增强第四章图像增强ImageEnhancement目的:采用一系列技术去改善图像的效果,或将图像转换成一种更适合于进行分析处理的形式[1]。两类方法:空间域法和频域(增强)法空间域法(InspatialDomain)直接对图像的像素进行操作空间域:组成图像像素的集合表达式:[](,)(,)gxyTfxy=这里(,)fxy:输入图像;(,)gxy:增强处理后的输出图像;[]T•:作用在f上的一个算子,定义在点(,)xy附近某一邻域内,这是所谓的点处理。在变换过程中对每一像点进行同样的处理;另外,T也可以作用在一组图像上。例如,为了抑制噪声,可以求多幅图像的平均。频域(增强)法(infrequencydomain)对图像的傅立叶变换进行操作,建立在卷积定理的基础之上。对二维(,)fxy与的卷积定义为(,)gxy(,)(,)(,)(,)fxygxyfgxyddαβαβα+∞−∞∗=−−∫∫β如果有傅氏变换对1第四章图增强(,)(,)(,)(,)fxyFuvgxyGuv⇔⇔则二维连续函数的卷积定理可表示为(,)(,)(,)(,)(,)(,)(,)(,)fxygxyFuvGuvfxygxyFuvGuv∗⇔⇔∗ii结论:两个连续函数的卷积可以由它们的傅氏变换相乘后进行反变换得到;两个连续函数的傅氏变换之间的卷积可由这两个函数相乘后进行傅氏变换得到。即,假如是将图像(,)gxy(,)fxy与一个二维的线性、空间移不变的函数进行卷积的结果:(,)hxy(,)(,)(,)gxyhxyfxy=∗据卷积定理,在频率域中有下面关系成立(,)(,)(,)GuvHuvFuv=这里G,H,F分别为g,h,f的二维傅立叶变换。(,)Huv为(线性系统理论中)的过程的传递函数,或在光学中称为光学传递函数。频域的图像增强:在给定图像(,)fxy的条件下,寻找传递函数,使得处理后的图像(,)Huv{}1(,)(,)(,)gxyHuvFuv−=ℑ的某些特征得到突出。如:通过提高高频分量的传递函数而增强图像边沿。本章内容:灰度修正、图像平滑、图像锐化、图像的伪色彩处理。4.1灰度级修正2第四章图增强这里讨论的是对原始图像灰度值进行变换的技术。这里要根据象素的统计特性来确定需要的变换函数类型,也就是说,方法的选用要考虑图像质量降低的不同原因和对图像特征的不同要求[2]。4.1.1图像数据矩阵统计信息通常的象素统计特性描述方式包括[2]:直方图单个象素的灰度值某一线段上的象素灰度分布图像的等高线图像的统计摘要(包括均值、方差等)区域特性度量在MATLAB工具箱中,备有返回图像数据矩阵统计信息的函数,下面简单介绍一下。单个象素的选择I=imread('tsfan.bmp')vals=impixel(I)vals=impixelvals=199199199145145145137137137136136136707070RGBMATLAB的函数MPIXEL:returnsthered,green,andbluecolorvaluesofspecifiedimagepixels,既可以通过使用输入参数定义象素坐标,也可以3第四章图增强使用鼠标来选择。函数impixval随鼠标在图像上移动,将交互地显示象素的数据值,还可以显示两个象素间的几何距离。图像等高线图I=imread('rice.tif');subplot(2,2,1),imshow(I);title('originalimageofrice');II=imread('tsfan.bmp');subplot(2,2,3),imshow(II);title('originalimageoftsfan')subplot(2,2,2),imcontour(I)title('contourimageofrice')subplot(2,2,4),imcontour(II)title('contourimageoftsfan')gridonMATLAB中使用工具函数incontour来显示灰度图像的等高线图形,可以自动进行坐标轴设置,使输出图形的方向和外观与图像吻合。可以简单调用。线段上象素灰度分布的绘制用MATLAB函数improfile能够计算和绘制图像中一条或多条线段上的所有象素的灰度值。可以用鼠标交互地调用线段,也能通过端点坐标作为输入参数定义线段。函数improfile使用差值方法来确定曲线上等间隔点的数值。在处理灰度图像和RGB图像时能获得非常好的效果。下图可以看出红蓝绿具有4第四章图增强高亮度的区域。%\imageenhancement\improfile_q.m%I=imread('flowers.tif');subplot(1,2,1),imshow(I);title('originalimageofflowers');x=[35338346103222];y=[253250171485];%x和y为两个可以指定线段端点的两个向量subplot(1,2,2),improfile(I,x,y);title('pixel-valuecross-sectionsofflowers');gridon;5第四章图增强6第四章图增强4.1.2灰度变换法(BasicGrayleveltransformation)对比度=亮度昀大值∕昀小值线性变换(Lineartransformationfunctions)[3]若系统没有充分利用显示装置所允许的昀大灰度范围,导致图像的对比度太低(如摄影时曝光不足),使得图像的一些细节难以观察。可进行灰度的线性变换。将原图像(,)fxy的灰度范围[][],,abcd⎯⎯⎯→扩成,易有(,)(,)dcgxyfxycba−=+−假如大部分像素灰度级分布在[],ab,很小部分超出,为了改进增强效果,可取0(,)(,)(,)(,)(,)fcfxdcgxyfxycafxybbadbfx⎧⎪−⎪=+≤⎨−⎪≤≤⎪⎩yayM≤分段线性变换突出感兴趣的灰度区间内的图像细节,抑制不感兴趣的区域。在黑色或白色附近有噪声干扰时用:如照片中的划痕。使用分段线性变换,通过调节折线拐点的位置及控制分段直线的斜率,可对不同区间进行压缩或扩展。7第四章图增强abMf0cdMgg(x,y)f(x,y)[](,)0(,)(,)(,)(,)(,)+(,)gffcfxyfxyaadcgxyfxycafxybbaMdfxybdbfxyMMb⎧≤≤⎪⎪⎪−⎪=+≤⎨−⎪−⎪−≤⎪−⎪⎩≤≤如上图所示,变换使两个灰度区间和0a∼fbM∼受到压缩,而灰度区间进行了线性变换。[,ab]非线性灰度变换可实现图像灰度的非线性变换。①对数变换(LogTransformations)[]ln(,)1(,),,lnfxygxyaabcbc+=+i为参数,可调节曲线的位置和形状。对数变换使低灰度范围的图像得以扩展;高灰度范围的图像得以压缩,使图像的灰度分布均匀,与人的视觉特性相匹配。②指数变换(Power-LawTransformations)[](,)(,)1cfxyagxyb−=−其中为调节参数。,,abc效果与对数变换相反,可使高灰度区得以扩展。8第四章图增强4.1.3直方图灰度变换直方图概念将图像离散化。设数字图像中像素的灰度级为,归一化后的取值范围:kr01kr≤≤黑白k=0,1,2,...,L-1这里L为灰度级的总数,1kkkLr+rΔ=−为灰度间隔。概率密度函数()rkpr表示原始图像的灰度分布直方图:()krknprN=(a)这里为第个灰度级;为具有灰度级的像素数目;为图像krkknkrN(,)fxy的总像素数。式(a)给出了图像的直方图,作坐标系的横轴,kr()rkpr为纵轴,表示数字图像中每一灰度级与其出现的频率(或相对频数)之间的关系。rkPr(rk)图3-1数字图像的直方图图像直方图一般能从整体上描述一幅图像,如原图像曝光不足或曝光过度,也可以看出动态范围选择的合适与否。我们可以对图像的直方图作一些修改,可以达到改善图像的目的。9第四章图增强基本原理考虑连续图像,作下面的灰度变换(对原始图像的灰度级):r()STr=为了这种变换有实际意义,应满足条件:(a)()01(b)010()1TrrrTr≤≤⎧⎨≤≤≤≤⎩为单值单调增加(在内)对,对应有Why?(a)使变换后的灰度值保持从黑到白的次序;(b)保证变换后的像素灰度级不超过允许的范围。反变换(从到)Sr1()(01)rTSS−=≤≤对于也应满足条件(a)和(b)。1T−连续图像可用概率密度函数和来表示其灰度分布情况。由概率理论可知,如果和已知,且满足条件(a),则变换后图像灰度的概率密度()rpr()SpS()rpr()Tr1()TS−()SpS可用下式求出1()()()SrrTSdrpSprdS−=⎡⎤=⎢⎥⎣⎦其中()rpr为变换前图像灰度的概率密度。结论:利用变换改变图像的灰度概率密度函数,也就是改变图像的灰度分布,进而达到改善图像的对比特性的目的。()Tr例、Matlab中直方图灰度变换。使用灰度变换函数imadjust可以实现图像的直方图调节。该函数的一般调用格式:10第四章图增强J=imadjust(I,[lowin,high_in],[low_outhigh_out])low_in和high_in参数分别指定输入图像I需要映射的灰度范围;low_out和high_out参数分别指定输处图像J所在的灰度范围。Imadjust还可以接受一个可选的参数来指定修正因素γ,根据该值不同,输入图像与输出图像之间的映射可能是非线性的。我们希望通过函数imadjust改善某一图像的对比度。看下图POUT.TIF的灰度值主要分布在80~220之间,现利用imadjust将它的灰度值重新进行映射,使之填满整个灰度值允许范围[0,255].I=imread('pout.tif')%读取图像subplot(1,2,1),imshow(I)%画出图像title('originalimageofrice')%给出名称11第四章图增强subplot(1,2,2),imhist(I)%画出原图直方图title('histogramofpout')%给出名称J=imadjust(I,[0.28,0.82],[01])%[0.28,0.82]这里指定需要映射的灰度值范围,[01]指定希望映射到的灰度值范围,因此,%这里输入图像中的灰度值0.28将被映射为输出图像中的0,0.82将被映射为输出图像中%的1,这时直方图将填满整个灰度范围。subplot(1,2,1),imshow(J)title('imageafterhist_transformed')subplot(1,2,2),imhist(J,64)title('histogramimageafterhist_transformed')其实,除了图像的对比度的增强或减弱,函数imadjust还可以进行其它种类的图像增强。12第四章图增强例、图像亮度的提高。原来图像中的任务衣服颜色较深,不能体现细节。利用函数imadjust将原图像的灰度范围从原[0,51]映射到[128,255].II=imread('cameraman.tif')KK=imadjust(II,[00.2],[0.51])subplot(1,2,1),imshow(II)title('originalimageofcameraman')subplot(1,2,2),imshow(KK)title('incrs-intensityimageofcameraman')这个操作大大提高了图像的亮度,并使原图像的动态范围增大,能够使外衣细节容易观察。但原始图像中大于51的数值都被映射为255,所以变换后的图像就被“洗白”。13第四章图增强4.1.4直方图均衡化(均匀化,HistogramEqualization)连续图像考虑灰度变换函数0()()(01)()rrrSTrpdrpααα==≤≤∫为概率密度函数理解:右边积分是原图像的累积