数字图像处理—————————————————————————————Porject3:图像的直方图均衡、匹配及图像分割摘要:本文利用matlab的编程,绘出图像的直方图。本文用了一般的直方图均衡和自适应的直方图均衡的算法分别对各个直方图进行均衡,得到了不同的效果。本文讨论了单映射规则和组映射规则的直方图匹配技术。本文采用了一般的直方图图像分割技术对图像进行分割,同时还讨论了一种基于梯度的直方图阈值图像分割技术。2012年4月12日星期四I项目题目:共10幅经变亮或者变暗处理的源图像;要求:1.把附件图像的直方图画出;2.把所有图像进行直方图均衡;输出均衡后的图像和源图像进行比对;分析改善内容;3.进一步把图像按照对源图像直方图的观察,各自指定不同源图像的直方图,进行直方图匹配,进行图像增强;4.利用直方图对图像elain和woman进行分割;技术分析1.画出附件的直方图,先利用读取图像数据的函数将图像的数据点读取出来,然后再对数据点的值进行排序,然后再统计每个灰度值出现的次数,然后再用这些数据值绘出直方图2.把所有图像进行直方图均衡;输出均衡后的图像和源图像进行比对;分析改善内容;先说说直方图均衡的原理:从数学上来说图像直方图是图像各灰度值统计特性与图像灰度值的函数,它是对图像中每一灰度值出现频率的统计,从图形上来说,它是一个二维图,横坐标表示图像中各个像素点的灰度级,纵坐标为各个灰度级上图像各个像素点出现的次数或概率。灰度直方图性质:①表征了图像的一维信息。只反映图像中像素不同灰度值出现的次数(或频数)而未反映像素所在位置。②与图像之间的关系是多对一的映射关系。一幅图像的直方图基本上可描述图像的概貌,如图像的阴暗状况和对比度等特征都可以通过直方图反映出来。既然一幅图像的概貌可以通过直方图反映出来,反之,可以通过修改直方图的方法来调整图像的灰度分布情况,因为直方图反映的是一个图像的灰度值的概率统计特征,所以,基于直方图的图像增强技术是以概率统计学理论为基础的,直方图反映的是一个图像的灰度值的概率统计特征。直方图均衡处理是以累计分布函数为基础的直方图修改法,就是把一已知灰度概率分布的图像经过一种变换,使之演变成一幅具有均匀灰度概率分布的新图像。如果一副图象的直方图是均衡的,则其概率密度函数为21L是图像灰度级的取仅范围,对于归一化的灰度级来讲,因为L1=l,所以Ps(s)=l。因此,上式可改写为ds=Pr(r)dr:两边取积分有:如果取变换函数则可以将概率密度函数为pr(r)的图像变为具有均匀概率密度分布函数ps(s)的图像。由上述几个式子所表示的变换函数是原图像的累积概率密度函数,该函数满足前述变换函数的两个条件,将上述结论推广到离散数字图象。设一幅图像的像元数为n,共有L个灰度级,nk代表灰废级为k的像元的数目,则第k个灰度级出现的概率可表示为:式中0≤rk≤1,0≤k≤L-1所表示的变换函数T(r)可改写为:式中0≤rr≤1,0≤k≤L-1,最后利用公式将灰度图的灰度级进行变换。因此程序中,需要将灰度图的直方图统计数组求出来,然后再利用上述3公式,将变换后的的灰度值求出来,最后再将图像的所有点都映射到新的灰度值上去。虽然直方图均衡可以提高整体的对比度,使图像清晰明亮,但是还是有些缺陷的。由于直方图均衡的理论来源于连续函数,而数字图像的灰度是离散值,应用于数字图像的变换函数进行了从连续到离散的近似。因而在直方图均衡中存在的问题有:(1)量化误差,造成原图某些灰度信息的丢失.由于取整等操作。(2)结果图像中概率密度的不均匀性.输入图像在同一灰度层上的像素,经过直方图均衡后,在输出图像中也在同一灰度层上.由于原图像中像素在各灰度分布的不均匀性与不连续性,结果图像中的概率密度ps(s)不可能始终为1,同时ps(s)的值与输入图像的各灰度层上的像素分布有关.当输入图像在某一灰度上的概率密度值最大时,在变换后的图像对应该灰度层的变化上也有最大值.直方图均衡只是改变原图像中同一灰度层上所有像素的灰度,并不能改变单个像素点在灰度层上的分布,因为从信息的角度来看,原图中同一灰度层上的像素点代表了相同的信息,不能通过变换使原本带有相同信息的像素点变成带有不同信息的像素点.以上的原因也就造成了直方图均衡在对灰度呈现两端分布,同时在图像的低灰度区域有较多像素点的图像进行处理后,得不到满意的效果,表现为处理后图像的亮度过度提升,而整幅图像的灰度动态范围没有有效提升,达不到突出图像细节的目的.为了使灰度如此分布的图像经过处理后达到理想的效果,要对常规的直方图变换进行如下修正:1)控制原图像中最低灰度层在结果图像中的灰度,使结果图像灰度分布有较大的范围;2)由于原图像低灰度层像素密集,原图像整体偏暗或偏亮,不利于观察,在结果图像中要进行适当的亮度修正.可进行如下变换:先对原图像进行常规的直方图均衡变换,得到结果图像X.结果图像X有L个灰度阶,灰度范围为k=0,1,2,3,,,L-1,再对结果图像X的各灰度层进行如下的映射:4式中:Tk为最终图像中的灰度值;Smax是X中有像素占据的最大灰度值;Smin是X中有像素占据的最小灰度值;Sk是X中的像素灰度值;a为亮度补偿系数,取值在0到1之间.由式(8)可得,a用于控制常规直方图均衡后,最低灰度层的映射位置.当a=0时,最低层被映射到了结果图像的0灰度;当a=1时,与常规直方图变换的结果相同;实验证明当a取0.2左右时,既可以控制原图像中最低灰度层不在结果图像中被变换到过高的灰度,使结果图像有较高的对比度,表现出原图中的细节,同时又可以对原图像作适当的亮度修正,得到较好的观察效果,同时使该算法具有自适应性.该算法的特点为:1)使结果图像具有比常规直方图均衡更大的动态范围,从而保证了结果图像的对比度与平均亮度.由人眼视觉理论认为,当平均亮度适中时,能分辨的亮度上下限之比为1000:1;而当平均亮度较低时,该比值只有10:1.从而可知由该算法处理后的图像比原图像有更好的细节表现力.2)该算法具有自适应性,不用根据直方图均衡后得到的结果再判断是否使用该算法.3.进一步把图像按照对源图像直方图的观察,各自指定不同源图像的直方图,进行直方图匹配,进行图像增强;直方图匹配的目的就是通过选择不同的匹配对象对一定灰度级范围内的图像进行有目的的增强,以突出其重点,达到要求的效果.我们在这里有两种方法进行直方图匹配,第一个是单映射规则匹配,第二个是进行组映射规则匹配。解释一下什么叫做直方图匹配,简单的讲,就是将原图像进行直方图均衡化处理,然后再挑选目标图像进行直方图均衡化处理,然后令两种处理后的图像的灰度概率密度相同,然后再将原图像的灰度级分布映射到目的图像的灰度级分布上。假设Pr(r)和Pz(z)分别表示原始图像和目标图像(希望得到的图像)的灰度分布概率密度函数,直方图匹配的目的就是调整图像直方图,使之具有Pz(z)所表示的形状[3].下面建立Pr(r)和Pz(z)之间的关系.首先对原始图像进行直方图均衡化处理,即求变换函数5再对目标图像灰度级进行直方图均衡化处理,即上式的逆变换为z=G-1(v).因为对原始图像和目标图都作了均衡化处理,所以均衡化后的图像应具有相同的概率密度函数,因此可以用原始图像均衡化后的灰度级s来代替上式中的v,即有:这就意味着可以由原始图像均衡化后图像的灰度值来求算目标图像的灰度级z.单映射匹配,就是每个灰度级跟每个灰度级进行匹配,进行比较,然后再进行单映射。而组映射匹配是将一组灰度级进行比较,然后进行匹配。对于单映射的算法:先对源图像进行均衡化处理,得到离散的概率密度函数和概率密度累计函数。同理把目的图像进行均衡化处理,也得到离散的概率密度函数和概率密度累计函数。然后把找到能满足最小的K和l(ps和pu求和上限),然后再把ps映射到pu中去。而组映射规则是:存在一维离散整数函数I(a),(a=1,2..,N-1),而且满足0=I(0)=I(1)=..=I(a)=...=I(N-1)=M-1.寻找能使达到最小值的I(a),其中Ps(Si)的求和区间为[0,I(a)],Pu(uj)的求和区间仍为[0,a].a=0时,将介于0和I(0)之间的ps(si)都映射到pu(u0)中,1《=a=N-1时,将介于I(a-1)+1和I(a)之间的Ps(si)都映射到pu(ui)中去。单映射是从原始累计直方图向匹配累计直方图映射,是有偏映射。组映射规则是从匹配累计直方图向原始累计直方图的映射,是统计无偏的。4.利用直方图对图像elain和woman进行分割;直方图分割的阈值方法的原理是,如果图像所包括的背景区域与所分的目标区域大小可比,而且两者在灰度上有着明显的去表,那么这样的图像的灰度上有着明显的去表,那么这样的图像的灰度直方图就会呈现很明显的双峰装;6其中一个峰值对应的应该是背景区域的灰度;而另一个峰值对应的就是目标灰度了;理想中的图像的灰度直方图,其背景灰度和目标灰度应对应两个不同过的灰度峰值,所以选取位于两峰之间的谷值作为阈值,就很快地将一副图像的背景与目标分割开了。从引用的论文中可以发现,经典的直方图算法实现简单,但是这只是针对少数不同类别的物体彼此灰度相差很大时,才能进行有效的分割。当原始图像的双峰不明显时,分割得不到理想的图像。我们从引用的论文中可以看出,先对图像进行锐化或者平滑处理,使之达到改善图像的质量的实际应用的要求,这个方法是当图像的边缘细节与图像商上梯度的整体强度有关,图像边缘越强,图像的细节效果越明显。算法实现为设图像在f(x,y)在(x,y)处的梯度定义为由于梯度是一个矢量,所以其方向和再该方向上的大小为对于一副图像中突出的,变化快的边缘区,其梯度值较大;而对于非边缘信号。其梯度值较小。这样由上面的梯度算子就可以增强图像的细节部分,徐保留低频信号,与原图像的信息进行叠加,其中添加一个锐化系数,如下:其中,g(x,y)为增强后的图像;f(x,y)为原始图像,用来保存图像的原始背景信息;grad(x,y)为原始图像梯度,为图像的锐化细节信息;K为锐化系数,用于调节锐化的强度。这样调整K值的大小。就使得原有图像在细节部分更具有突出性。7结果讨论:1.把附件图像的直方图画出;D图1citiwall1图3elain1图5elain38图2citiwall2图4elain2图6lena1图7lena2图9woman1图8lena4图10woman2以上为10幅图像的直方图,我们可以看到,经过相同的原图像处理后的图像的直方图是相同的,这表明这种处理不改变图像的直方图灰度概率密度分布。同时表明一个直方图可以有很多源图像。同时有好多图像都没有将整个x轴的值取满。有些图像的直方图集中在一块。同时大多数直方图都有两个或者是两个以上的峰值。有些图像的灰度比较集中在某一段内。而这些图像不是黑就是白,但9是其直方图相对应是基本一样的2.把所有图像进行直方图均衡;输出均衡后的图像和源图像进行比对;分析改善内容;Citywall1普通算法均衡后Citywall1自适应均衡算法处理后10Citywall1源图像Citywall1Matlab均衡命令处理后Citywall1源图像直方图Citywall1自适应均衡算法处理后Citywall1普通算法均衡后Citywall1Matlab均衡命令处理后从citiywall1和直方图均衡处理后的图像上看,处理后的图像明显的变亮了,11同时变的比较清晰,特别是较亮的部分,由模糊变的清晰,且比较明显,但是比较暗的部分没有得到太大的改善。然后对比自己编程写的普通算法和自适应算法以及matlab算法,发现普通算法的效果和matlab命令的效果相差不大,但是自适应算法增亮效果过于强。(citywall1)Citywall2源图像Citywall2自适应算法均衡后12Citywall2普通算法均衡后Citywall2matlab命令均衡后我们可以看到原图像是一幅整体比较白的图像,经过直方图匹配之后发现有所改善,对比度增强了,图像变清晰,但是呢,需要指出的是,比