DIP03 空域图像增强(上)_第1页
DIP03 空域图像增强(上)_第2页
DIP03 空域图像增强(上)_第3页
DIP03 空域图像增强(上)_第4页
DIP03 空域图像增强(上)_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章空间域图像增强ImageEnhancementintheSpatialDomain姜竹青2空间域的图像增强图像增强的首要目的是处理图像,使其比原图像更适合于特定的应用。技术

面向问题例如:一种适合增强X射线图像的方法,不一定是适合增强由空间探测器发回的火星图像的最好方法。(科研中创新:问题&方法)图像增强的方法分为两大类:空间域方法:对图像像素直接处理频域方法:基于图像傅氏变换的处理许多技术是基于两种方法的结合的。不存在图像增强的通用理论为视觉解释而进行处理时,由观察者最后判断特定方法的效果。图像质量的视觉评价是高度主观的过程,因此,定义一个“理想图像”标准,通过这个标准去比较算法的性能。即便如此,在选择特定的增强算法之前,需要试验和检查误差的允许量。(多媒体通信)34本章内容背景知识和基础概念基于点操作的图像增强技术基于直方图的图像增强技术基于空间滤波的图像增强技术5背景知识空间域增强:增强图像的某些像素。空间域方法:直接对这些像素进行操作的过程。空间域处理的定义g(x,y)=T[f(x,y)]f(x,y)

输入图像g(x,y)

处理后的输出图像T[.]

在像素(x,y)邻域上对f(x,y)施加的一种算子。算子狭义的算子是表示一种对函数的运算的符号。如同普通的运算符号作用于数后可以得到新的数那样,一个算子作用于一个函数后可以根据一定的规则生成一个新的函数。67像素(x,y)邻域定义为中心在(x,y)点的正方形或矩形子图像。图3.1图像中(x,y)点的33邻域和其他邻域形状相比较,正方形和矩形阵列因其容易操作而占主导地位背景知识8T算子最简单的形式是邻域为11

的运算(点处理),即单个像素。这种情况下,g仅仅依赖于f在(x,y)点的幅度值,与坐标(x,y)值无关,T操作作为灰度级变换(幅度映射)函数,形式为:s=T(r)r是f(x,y)在任意点(x,y)的灰度级,r=f(x,y)s是g(x,y)在相应点(x,y)的灰度级,s=g(x,y)背景知识9更大的邻域有更多的灵活性!一般方法:利用点(x,y)邻域里的f函数值,决定g(x,y)的值,以模板(也指滤波器、核或窗口)

为基础。模板是一个小的二维阵列(例如33);模板的系数值决定了处理的性质(图像锐化/高通、模糊/低通等);以模板为基础的增强技术通常称为模板处理或滤波。背景知识10基本灰度变换基于点操作的灰度级变换s=T(r):只基于单个像素亮度的图像增强技术,即单点处理。r处理前的像素值;s处理后的像素值;算子T把像素值r映射到s的一种变换(算子)。由于处理的是数字值,变换函数的值通常存储在一个一维阵列中,从r到s的映射可以通过查表(LookUpTable,LUT)获得。对于8bit图像,需要256个存储值。3个基本的图像增强灰度变换函数:线性的:正比和反比对数的:对数和反对数幂次的:n次幂和n次方根1112图3.3用于图像增强的某些基本灰度变换函数基本灰度变换13图像反转ImageNegatives灰度级范围为[0,L-1]的图像反转表达式为:图3.3(a)用于图像增强的反转变换函数L:灰度级的数目黑到白的翻转14图像反转反转图像的方法:适用于增强图像暗色区域嵌入的白色或灰色细节,特别是当黑色面积占主导地位的时候。

f=反比函数是最一般的,其输入和输出亮度可互换图3.4(b)原始图像(c)反转后得到的图像15图像反转Matlab函数图像灰度或彩色变换函数:imadjusts=imadjust(r,[low_inhigh_in],[low_outhigh_out],gamma)将图像r中的亮度值映射到s中的新值,即将low_in~High_in之间的值映射到low_out~High_out之间的值,low_in~High_in之外的被限幅。[low_inhigh_in]和[low_outhigh_out]为空矩阵[]时,表示默认值[0,1]参数gamma描述了r和s变换曲线的形状,若gamma小于1,则映射为更亮的输出;若gamma大于1,则映射为更暗的输出;若gamma为缺省1,则是线性映射。输入图像应为uint8、uint16或double类数据,输出图像有相同的类16RGB2=imadjust(RGB1,[low_inhigh_in],[low_outhigh_out],gamma)实现每个图像分量(红绿蓝)单独的映射[low_inhigh_in],[low_outhigh_out]或者gamma是1×3向量图像反转Matlab函数%图像反转r=imread('rose.jpg');s=imadjust(r,[01],[10]);subplot(2,1,1),imshow(r);subplot(2,1,2),imshow(s)一幅图像的负片也可以使用imcomplement函数获得:

g=imcomplement(f)17图像反转Matlab函数r=imread('lena_gray.jpg');s=imadjust(r,[0.30.7],[]);subplot(2,1,1),imshow(r);subplot(2,1,2),imshow(s)把0.3~0.7之间的灰度级扩展到0~1范围,从而突出感兴趣的亮度带。(阈值之外的舍去)18图像反转Matlab函数%彩色图像的3个分量变换RGB1=imread('flowers.tif');RGB2=imadjust(RGB1,[0.2,0.3,0;0.6,0.7,1],[]);subplot(1,2,1),imshow(RGB1);Subplot(1,2,2),imshow(RGB2)low_inhigh_in19对数变换LogTransformations对数变换表达式:s=clog(1+r)

其中:c是常数,且r0(c的作用是?)低灰度图像扩展暗像素值,压缩亮像素值。反对数变换表达式:高灰度图像扩展亮像素值,压缩暗像素值。又称为“动态范围压缩/扩展”应用:压缩/扩展图像动态范围,以便充分发挥显示设备的特性。典型应用是傅里叶频谱图像:FT频谱值有很大的动态范围:0~106

或更高(一般FT的DC直流系数很大,AC交流系数比较小)。但图像显示系统没有如此大的显示动态范围,很多细节会丢失。对数反对数208比特显示系统图3.5(a)原始图像:傅里叶频谱值为0~1.5106最亮像素将成为显示的重点,重要的交流系数部分将呈现黑色而观察不到,从而损失掉。可以用对数变换对图像进行调整:增大暗像素值,减小亮像素值。对数变换LogTransformations218比特显示系统图3.5(b)取c=1时调整范围以后的频谱,clog(FT+1):0~255和光谱直接显示相比,这幅图像的细节可见程度得到了明显的改进。图像处理的出版物中绝大多数FT频谱都用此方法调整过。对数变换LogTransformations22DFT土星Log[1+DFT]对数变换LogTransformations23对数变换函数:s=c*log(1+double(r))当执行一个对数变换时,通常要将处理后的值还原为显示的全范围,对8bit而言,Matlab语句为:>>gs=im2uint8(mat2gray(s));使用函数mat2gray将值限定在范围[0,1]内,使用函数im2uint8将值限定在范围[0,255]内。对数变换Matlab函数%使用对数变换减小动态范围,前面图3.5傅里叶变换频谱r=imread('Fig0305(a)(spectrum).tif');subplot(1,2,1),imshow(r),subplot(1,2,2),imhist(r),axistights=im2uint8(mat2gray(log(1+double(r))));%c=1figure,subplot(1,2,1),imshow(s),subplot(1,2,2),imhist(s),axistighttitle('对数变换结果')%axis([025504000])24对数变换Matlab函数原始图像及其直方图(长尾效应)对数变换后减少了动态范围25幂次变换Power-lawTransform.幂次变换表达式:

其中c和是正常数。<1

扩展暗像素值,压缩亮像素值;>1

压缩暗像素值,扩展亮像素值;=c=1

恒等转化;用于图像获取、打印和显示等各种设备根据幂次进行响应。幂次等式中的指数是,用于修正幂次响应现象的过程叫做伽马校正。图3.6c=1对应不同幂次变换曲线>1和<1的值产生的曲线有相反的效果26幂次变换示例(1)——伽马校正阴极射线管(CRT)的电压—亮度响应曲线是幂函数形状,其指数变化范围为1.8~2.5,取=2.5。因>1,没有进行伽马校正的输出图像比输入图像灰度层次减少。进行伽马校正s=r1/2.5=r0.4,得到近似等于输入的输出。不同设备,取值不同。电视系统中,一般把校正放置于发射机,以降低接收成本。伽马校正的意义对于监视器精确的显示图像非常重要。试图精确的再现颜色也需要用到伽马校正的知识(伽马校正值不但可以改变亮度,还可以改变红绿蓝的比例)。数字图像在因特网上的商用,使得伽马校正逐渐变得越来越重要:有的计算机内置伽马校正;现有图像标准没有包含确切的值;27原始图像显示器输出比原始图像暗伽马校正后的输入显示器输出和原始图像相近幂次变换示例(1)——伽马校正28CRT的γ效应演示:在图中分为二行三列,在一行中灰度从25%到75%之间变化,上边一行代表灰度值,而下面一行代表抖动产生的模拟灰度值(它不受CRT的γ系数的影响

)。经γ校正后,在一定距离外观看,上下两行对应块的亮度相同;如果没有经过γ校正,上面方块的亮度要比相应的下面方块的亮度暗。幂次变换示例(1)——伽马校正29显视器的γ值的估算:站在一定距离外观看哪一列中上下图象的亮度最接近,此列中所标注的γ值就是本显示器的γ校正系数。幂次变换示例(1)——伽马校正30幂次变换示例(2)——对比度调整图示人体脊椎骨骨折和椎线受影响的核磁共振(NMRI)图像。所给图像整体为灰暗,需要灰度扩展,用<1的幂次变换完成。值分别为0.6,0.4,0.3,c=1。注意从0.6到0.4时,可以看见更多的细节,进一步减小到0.3时,背景中的细节进一步增强,图像有被冲淡的感觉(对比度降低),尤其是背景。对比度和可变细节的最好增强效果是=0.4。31原始图像=0.6c=1=0.4c=1=0.3c=1骨折位置清晰可见背景冲淡幂次变换示例(2)——对比度调整32幂次变换示例(3)——灰度级压缩原始图像=3.0c=1=4.0c=1=5.0c=133幂次变换(伽马校正)函数:imadjust前面讲过的imadjust,只是需要设置合适的参数。>>s=imadjust(r,[],[],gamma)幂次变换Matlab函数r=imread('Poetryofnature.jpg');s=imadjust(r,[],[],0.5);imshow(r);figure,imshow(s);原始图像34对比度拉伸变换图3.2(a)对比度增强的灰度变换函数这种变换将会产生比原始图像更高的对比度。原始图像中灰度级低于m时,输出图像变暗;原始图像中灰度级高于m时,输出图像变亮。在对比度扩展技术里,在m以下的r值将被变换函数T压缩在s的较窄范围内,接近黑色,对m以上的r值进行相反的操作。对比度拉伸变换35Matlab实现上图3.2a所示曲线的函数形式为其中,r表示输入图像亮度,s表示输出图像亮度,E控制该函数的斜率,m是上图中的阈值门限。Matlab语句:

>>s=1./(1+(m./(double(f)+eps).^E)注意:eps避免f为0值时出现溢出。由于T(r)限制值为1,所用输出值也缩放在[0,1]范围内。上图曲线是E=20时获得的。对比度拉伸变换%对比度拉伸,前面图3.5傅里叶变换频谱r=imread('Fig0305(a)(spectrum).tif');subplot(1,2,1),imshow(r),subplot(1,2,2),imhist(r),axistightm=5;E=10;s=im2uint8(mat2gray(1./(1+(m./(double(r)+eps)).^E)));figure,subplot(1,2,1),imshow(s),subplot(1,2,2),imhist(s),axistight36原始图像及其直方图对比度拉伸后图像对比度拉伸变换37图3.2(b)对比度增强的灰度变换函数图3.2(b)对比度增强的灰度变换函数是图3.2(a)的极限情况。图3.2(b)的T(r)产生二值(两值)图像:r≤m,s=0;r>m,s=1;这种形式的映射关系叫做阈值函数灰度级函数变换示例对比度拉伸变换38灰度变换的Matlab全能函数函数intrans:前面一些灰度变换的实用M函数的组合。functiong=intrans(f,varargin)%INTRANSPerformsintensity(gray-level)transformations.%G=INTRANS(F,'neg')computesthenegativeofinputimageF.%%G=INTRANS(F,'log',C,CLASS)computesC*log(1+F)and%multipliestheresultby(positive)constantC.Ifthelasttwo%parametersareomitted,Cdefaultsto1.Becausethelogisused%frequentlytodisplayFourierspectra,parameterCLASSoffersthe%optiontospecifytheclassoftheoutputas'uint8'or%'uint16'.IfparameterCLASSisomitted,theoutputisofthe%sameclassastheinput.%%G=INTRANS(F,'gamma',GAM)performsagammatransformationon%theinputimageusingparameterGAM(arequiredinput).%%G=INTRANS(F,'stretch',M,E)computesacontrast-stretching%transformationusingtheexpression1./(1+(M./(F+%eps)).^E).ParameterMmustbeintherange[0,1].Thedefault%valueforMismean2(im2double(F)),andthedefaultvalueforE%is4.%%Forthe'neg','gamma',and'stretch'transformations,double%inputimageswhosemaximumvalueisgreaterthan1arescaled%firstusingMAT2GRAY.Otherimagesareconvertedtodoublefirst%usingIM2DOUBLE.Forthe'log'transformation,doubleimagesare%transformedwithoutbeingscaled;otherimagesareconvertedto%doublefirstusingIM2DOUBLE.%%Theoutputisofthesameclassastheinput,exceptifa%differentclassisspecifiedforthe'log'option.%Copyright2002-2004R.C.Gonzalez,R.E.Woods,&S.L.Eddins%DigitalImageProcessingUsingMATLAB,Prentice-Hall,2004%$Revision:1.7$$Date:2003/10/1300:45:53$%Verifythecorrectnumberofinputs.error(nargchk(2,4,nargin))%Storetheclassoftheinputforuselater.classin=class(f);%Iftheinputisofclassdouble,anditisoutsidetherange%[0,1],andthespecifiedtransformationisnot'log',convertthe%inputtotherange[0,1].ifstrcmp(class(f),'double')&max(f(:))>1&...~strcmp(varargin{1},'log')f=mat2gray(f);else%Converttodouble,regardlessofclass(f).f=im2double(f);end%Determinethetypeoftransformationspecified.method=varargin{1};%Performtheintensitytransformationspecified.switchmethodcase'neg'g=imcomplement(f);case'log'iflength(varargin)==1c=1;elseiflength(varargin)==2c=varargin{2};elseiflength(varargin)==3c=varargin{2};classin=varargin{3};elseerror('Incorrectnumberofinputsforthelogoption.')endg=c*(log(1+double(f)));case'gamma'iflength(varargin)<2error('Notenoughinputsforthegammaoption.')endgam=varargin{2};g=imadjust(f,[],[],gam);case'stretch'iflength(varargin)==1%Usedefaults.m=mean2(f);E=4.0;elseiflength(varargin)==3m=varargin{2};E=varargin{3};elseerror('Incorrectnumberofinputsforthestretchoption.')endg=1./(1+(m./(f+eps)).^E);otherwiseerror('Unknownenhancementmethod.')endg=changeclass(classin,g);%Converttotheclassoftheinputimage.39灰度变换的Matlab全能函数%灰度变换的全能函数intransr=imread('Fig0306(a)(bone-scan-GE).tif');imshow(r)s=intrans(r,'stretch',mean2(im2double(r)),0.9);figure,imshow(s)原始图像对比度拉伸40灰度标度Matlab函数图像处理时,像素值有正有负,这在中间计算过程中没有问题,但当用8bit或16比特格式存储或显示时,就会出现溢出问题。在这种情况下,通常希望把图像标度到全尺寸,即最大范围[0,256]或[0,65535]。Matlab函数gscale实现上述功能,并能将输出映射到一个特定范围。函数gscale的语法为s=gscale(r,method,low,high)method

:1)有效值为full8(缺省)和full16,前者范围[0,255],后者[0,65535]。若使用两者之一,则可省略参数low和high。2)有效值为“minmax”,则结果映射到范围[low,high],low和high限定为[0,1]内的值。尽管限定在[0,1]范围内,但函数会根据输入的类执行适当的标度,然后将输出转换为与输入相同的类。例如,r为uint8类图像,且“minmax”在[0,0.5]内,则输出图像同样为uint8类图像,其值在范围[0,128]内。41灰度标度Matlab函数函数gscale:functiong=gscale(f,varargin)%GSCALEScalestheintensityoftheinputimage.%G=GSCALE(F,'full8')scalestheintensitiesofFtothefull%8-bitintensityrange[0,255].Thisisthedefaultifthereis%onlyoneinputargument.%%G=GSCALE(F,'full16')scalestheintensitiesofFtothefull%16-bitintensityrange[0,65535].%%G=GSCALE(F,'minmax',LOW,HIGH)scalestheintensitiesofFto%therange[LOW,HIGH].Thesevaluesmustbeprovided,andthey%mustbeintherange[0,1],independentlyoftheclassofthe%input.GSCALEperformsanynecessaryscaling.Iftheinputisof%classdouble,anditsvaluesarenotintherange[0,1],then%GSCALEscalesittothisrangebeforeprocessing.%%Theclassoftheoutputisthesameastheclassoftheinput.%Copyright2002-2004R.C.Gonzalez,R.E.Woods,&S.L.Eddins%DigitalImageProcessingUsingMATLAB,Prentice-Hall,2004%$Revision:1.5$$Date:2003/11/2114:36:09$iflength(varargin)==0%Ifonlyoneargumentitmustbef.method='full8';elsemethod=varargin{1};endifstrcmp(class(f),'double')&(max(f(:))>1|min(f(:))<0)f=mat2gray(f);end%Performthespecifiedscaling.switchmethodcase'full8'g=im2uint8(mat2gray(double(f)));case'full16'g=im2uint16(mat2gray(double(f)));case'minmax'low=varargin{2};high=varargin{3};iflow>1|low<0|high>1|high<0error('Parameterslowandhighmustbeintherange[0,1].')endifstrcmp(class(f),'double')low_in=min(f(:));high_in=max(f(:));elseifstrcmp(class(f),'uint8')low_in=double(min(f(:)))./255;high_in=double(max(f(:)))./255;elseifstrcmp(class(f),'uint16')low_in=double(min(f(:)))./65535;high_in=double(max(f(:)))./65535;end%imadjustautomaticallymatchestheclassoftheinput.g=imadjust(f,[low_inhigh_in],[lowhigh]);otherwiseerror('Unknownmethod.')end%gscale把图像标度在全尺度f=[125.369.85.32.3]g=uint8(f)hf=gscale(f),h1=gscale(g)h2=gscale(g,'minmax',0.1,0.6)class(h2)42分段线性变换函数优点:它的形式可以任意合成。

一些实际应用的重要变换可以由分段线性函数表示。缺点:需要更多用户输入。几种主要形式:对比拉伸灰度切割位图切割43分段线性变换函数——对比拉伸形成低对比度图像的可能原因:照明不足;成像传感器动态范围小;图像获取过程中透镜光圈设置错误;…...对比拉伸的思想:通过图像处理提高图像灰度级的动态范围。方法:44点(r1,s1)和(r2,s2)的位置控制了变换函数的形状:若r1=s1

且r2=s2,则变换为一线性函数,灰度级没有变化。若r1=r2

,s1=0且s2=L-1,则T(.)变换为是门限(域值)函数,结果是二值图像;通常r1≤r2

且s1≤s2

即T(r1)≤T(r2),则T(.)是单值单调函数,保持灰度级次序,避免处理过的图像中产生人为亮度。分段线性变换函数——对比拉伸0r1r2s1s2输入灰度r输出灰度s0r1=r2s1s2L-145原始图像(电子显微镜扫描的700倍花粉图像)对比度由原范围线性地拉伸至饱和范围[0,L-1]域值函数0ms1s2L-1变换函数0rmins1s2输入灰度r输出灰度srmaxL-1分段线性变换函数——对比拉伸46分段线性变换函数——灰度切割提高特定灰度范围的亮度。应用:包括增强特征和增强X射线图像中的缺陷等。两种方法:高灰度级sH低灰度级sL47

原始图像使用前一种方法变换的结果分段线性变换函数——灰度切割48分段线性变换函数——位图切割通过对特定位(比特)提高亮度,而改变图像质量。若图像中每个像素由8比特表示,则图像是由8个比特平面组成其范围从最低有效位(LSB)的位平面0到最高有效位(MSB)的位平面7。图3.128比特图像的位平面表示49分段线性变换函数——位图切割通过对特定位(比特)提高亮度,而改变图像质量。较高阶位(特别是高4位)包含了大多数在视觉上很重要的数据,其他位平面对图像中更多的微小细节有作用。这种分解能有效地分析每一位比特在图像中的重要性,在图像压缩中很有用。50图3.13一幅8比特分形图像(分形图像是由数学表达式产生的图像)分段线性变换函数——位图切割51位平面7位平面6位平面5位平面2位平面3位平面0图3.14图3.13中图像的8个位平面分段线性变换函数——位图切割52分段线性变换函数——位图切割比特平面的Matlab生产/wiki/File:Lichtenstein_bitplanes.pngclearall%readimageimg=imread('Fig3.13.jpg');%convertittograyscale%img=rgb2gray(img);img=imresize(img,0.5,'bicubic');[x,y]=size(img);bitplanes=zeros(x,y,8);fori=1:xforj=1:ybinary=de2bi(img(i,j),8,'left-msb');fork=1:8bitplanes(i,j,k)=binary(k);endendendimwrite(img,'Fig3.13.jpg');%originalimageimwrite(bitplanes(:,:,1),'bit1.jpg','quality',75);%MSBimwrite(bitplanes(:,:,2),'bit2.jpg','quality',75);imwrite(bitplanes(:,:,3),'bit3.jpg','quality',75);imwrite(bitplanes(:,:,4),'bit4.jpg','quality',75);imwrite(bitplanes(:,:,5),'bit5.jpg','quality',75);imwrite(bitplanes(:,:,6),'bit6.jpg','quality',75);imwrite(bitplanes(:,:,7),'bit7.jpg','quality',75);imwrite(bitplanes(:,:,8),'bit8.jpg','quality',75);%LSB53本章内容背景知识和相关概念基于点操作的图像增强技术基于直方图的图像增强基于空间滤波的图像增强54直方图处理直方图处理直方图均衡化直方图匹配局部增强直方图的定义灰度级为[0,L-1]范围的数字图像的直方图是离散函数h(rk)=nkrk是第k级灰度;nk是图像中灰度级为rk的像素的个数;K=0,1…L-1。在Matlab中,对于uint8类图像,L为256;对于uint16类图像,L为65535;对于double类图像,L为1.0。归一化的直方图p(rk)=nk/n(n为像素总数)给出了灰度级为rk发生的概率估计值;注意:一个归一化的直方图其所有部分之和应为1;直方图给出了图像整体描述,没有具体位置信息。55暗图像:直方图的组成成分集中在灰度级低(暗)的一侧亮图像:直方图的组成成分倾向于灰度级高的一侧低对比度图像:直方图窄而集中于灰度级的中部,好像画面被冲淡了一样对比度合适图像:直方图覆盖了灰度级很宽的范围,分布较均匀,只有少量垂线比其它的高许多。直方图处理56上图结论:若一幅图像的像素占有全部可能的灰度级,并且分布均匀,则这幅图像具有高的对比度和多变的灰度色调。其作用是出现一幅灰度级丰富,且动态范围大的图像。可以开发一个变换函数,仅仅依靠输入图像的直方图就可实现图像增强。直方图是多种空间处理的基础,它为图像增强提供了有用的统计信息,而且还可有效地应用于数字图像处理的其它方面,如压缩和分割。直方图处理57直方图处理直方图Matlab函数:h=imhist(f,b)f为输入图像h为直方图h(rk)b表示把0~L-1划分为几部分,若未给出b,则缺省为b=256。例如处理uint8类图像,且b=2,则直方图在0~127和128~255两个范围内统计直方图,得h(1)等于图像在[0,127]内的像素总数,h(2)等于[128,255]内的像素总数。归一化直方图Matlab函数:

p=imhist(f,b)/numel(f)函数numel(f)给出图像f中的像素个数。直方图的各种形式:1)imhist2)bar3)stem4)plot58直方图处理直方图归一化直方图%图像直方图clearall,clcr=imread('cameraman.tif');imshow(r),figure;imhist(r),axistightp=imhist(r)/numel(r);

figure,plot(p)59直方图均衡化直方图均衡化是变换后图像中各灰度级出现的概率相当,变换后概率密度函数(pdf)为均匀分布。说明:考虑连续函数情况(灰度级是连续模拟数值);变量r代表增强图像的灰度级,归一化到区间[0,1],r=0代表黑色,r=1代表白色;进而推导在[0,L-1]区间内的离散公式;对于直方图变换s=T(r),变换函数T(r)应满足T(r)在区间0r1中为单值,且单调递增;当0r1时,0T(r)1;条件1:保证反变换存在,单调条件保持输出图像从黑到白顺序增加条件2:保证输出和输入有相同的范围;注意:即使满足这两个条件也不能保证反变换一定是单值函数。60上式看出:ps(s)由输入图像的灰度级pr(r)和所选择的变换函数决定。概率密度函数永远为正,其积分满足条件1单值单调增加,区间[0,1]上的变量概率密度函数积分也在区间[0,1]内,满足条件2单值单调递增的灰度级变换函数一幅图像的灰度级为[0,1]的随机变量,其基本描述是概率密度函数(pdf)。pr(r)和ps(s)分别是原始和变换后灰度级的概率密度函数(pdf)。若pr(r)和s=T(r)已知,且T-1(s)满足条件(1),则根据概率理论得到s的pdf为:直方图均衡化61在DIP中,一个重要的变换函数定义为:根据微积分学中的莱布尼茨准则,关于上限的定积分的导数就是该上限的积分值,即:把ds/dr代入ps(s)表达式,得:

变换函数s=T(r)的特征为一均匀概率密度函数。s=T(r)取决于pr(r),但ps(s)与pr(r)的形式无关,始终是均匀的。(为随机变量r的累积分布函数,CDF)直方图均衡化62对于连续灰度级图像,具有均匀pdf。对于数字图像,灰度级的概率密度函数一般不可能完全均匀分布。考虑离散、[0,L-1]区间内的情况pdf→概率;连续值积分→离散值求和。一幅图像中灰度级rj

出现的概率近似为:rj的函数Pr(rj)曲线称作直方图rj

到sk的变换叫做直方图均衡化(或直方图的线性化)其中,n是图像中像素总和,nj

为灰度级为rj

的像素个数,L为图像灰度级总数。变换函数的离散形式为:直方图均衡化63离散变换一般不能产生完全均匀的pdf,但其有展开输入直方图的趋势,直方图均衡化后的图像灰度级能扩展到更大的范围。直方图均衡化能自动的确定变换函数,产生有近似均匀直方图的输出图像。比较几组直方图均衡化的结果虽然原始图像差别很大,但直方图均衡化后的图像视觉效果相近。最后一组图像中变换前后图像差别不大,因为高对比图像直方图本身灰度级别所占的范围就很广。直方图均衡化64暗图像亮图像直方图均衡化65低对比度图像高对比度图像直方图均衡化66直方图均衡化转化函数

(由原始图像经上面的sk=T(rk)定义得到)直方图均衡化67直方图增强举例:图象f(x,y),宽300,高100像素,偏暗。计算变换TT(0)=1000/3000*255=85………T(63)=T(62)+0/3000=85T(64)=(1000/3000+1000/3000)*255=170………T(254)=T(253)+0/30000=170T(255)=(1000/3000+1000/3000+1000/3000)*255=2552551000064rknk直方图均衡化68变换后的图像和直方图得到变换函数T(0)=85………T(63)=85T(64)=170………T(254)=170T(255)=2552551000085rknk170问题:图象最暗处依赖于原图像0灰度像素的个数。有偏亮的倾向。矫正:X0=(Xi-85)/(255-85)*255直方图均衡化69变换后的图像和直方图矫正后的变换函数T(0)=0………T(63)=0T(64)=128………T(254)=128T(255)=25525510000128rknk直方图均衡化70矫正前后的比较1000100025508517025510000642550128直方图均衡化71直方图均衡化Matlab直方图均衡化Matlab函数:s=histeq(r,nlev)r是输入图像,s是输出图像nlev是输出图像的灰度级数目,缺省值nlev=64。通常nlev赋予最大的灰度级数,一般为256.%直方图均衡化clear,clcf=imread('Fig0308(a)(pollen).tif');subplot(1,2,1),imshow(f),subplot(1,2,2),imhist(f)ylim('auto')g=histeq(f,256);figure,subplot(1,2,1),imshow(g),subplot(1,2,2),imhist(g)ylim('auto')72直方图均衡化Matlab直方图均衡化变换函数

变换函数是归一化直方图值的简单累加求和,其Matlab语句:>>clear,clc>>f=imread('Fig0308(a)(pollen).tif');>>hnorm=imhist(f)./numel(f);%归一化直方图>>cdf=cumsum(hnorm);%变换函数>>x=linspace(0,1,256);>>plot(x,cdf);>>axis([0101])>>set(gca,'xtick',0:.2:1)>>set(gca,'ytick',0:.2:1)>>xlabel('Inputintensityvalues','fontsize',9)>>ylabel('Ouputintensityvalues','fontsize',9)>>text(0.18,0.5,'Transformationfunction','fontsize',9)可以清楚地看到该传输函数把输入图像偏暗的、动态范围较窄的灰度级变换为输出图像整个灰度范围73直方图匹配(规定化)直方图均衡仅产生一个结果:具有近似均匀直方图的图像,但缺少灵活性。直方图匹配(又称直方图规定化):

使处理后的输出具有规定的直方图形状。规定:连续随机变量r和z分别代表输入和输出图像灰度级pr(r)和pz(z)为对应的连续概率密度函数过程:说明特定的直方图形状pz(z);寻找转换函数:r→z;存在的问题:有针对性的直方图难以构造;对于给定的Pr(r)和Pz(z),难以得到转换函数;(拟合)74直方图匹配方法:利用图像直方图均衡化作为中间媒介,把输入和输出图像分别进行图像直方图均衡化处理,获得的pdf应该基本相等。r输入图像灰度级(pdf:Pr(r)

),其均衡化为

z输出图像灰度级(pdf:Pz(z)

),其均衡化为s和v分别表示输入和输出图像直方图均衡化后的图像灰度级,两者基本相等:结果得到:sv要得到

r→z转换函数,执行获得转换后的灰度级75直方图匹配直方图匹配的过程(连续灰度级)由求得变换函数由求得变换函数求得反变换函数对所有像素应用,得到具有事先规定概率密度函数pz(z)的输出图像。上述步骤理论上可以直接进行,但是实际上很难得到T(r)和G-1。幸运的是,离散情况下,这一问题在相当大的程度上被简化了。代价:仅仅得到所希望直方图的近似。76直方图匹配离散域中的直方图匹配的基本公式:1st公式:基于原始图像直方图,从原始图像灰度级得到对应灰度级

s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论