首页 百科知识 直方图增强

直方图增强

时间:2022-10-09 百科知识 版权反馈
【摘要】:数字图像的增强是图像处理中的一个重要研究内容之一,是图像处理的一项基本技术。设和分别表示原图像灰度级和经直方图均衡化后的图像灰度级。直方图均衡化的优点是得到近似均匀分布的直方图,自动增强整个图像的对比度,但它的具体增强效果不容易控制,处理的结果总是得到全局均匀化的直方图。MATLAB图像处理工具箱提供了实现直方图规定化的函数和直方图均衡化的函数相同,即histeq(),并提供了用于调整一幅图像均匀分布灰度值的函数adapthisteq()。

2.1.2 直方图增强

直方图(Histogram)也叫柱状图,是一种统计报告图,由一系列高度不等的纵向条纹表示数据分布的情况。直方图由一张二维的坐标系构成,其横轴代表的是图像中的亮度,由左向右,从全黑逐渐过渡到全白;纵轴代表的则是图像中处于这个亮度范围的像素的相对数量。当直方图中的黑色色块偏向于左边时,说明图像的整体色调偏暗,也可以理解为图像欠曝。而当黑色色块集中在右边时,说明图像整体色调偏亮,除非是特殊构图需要,否则我们可以理解为图像过曝。

数字图像的增强是图像处理中的一个重要研究内容之一,是图像处理的一项基本技术。图像增强是指按特定的需要突出一幅图像的某些信息,同时,削弱或除去某些不需要的信息的处理方法,首先就是对原图像通过离散函数进行直方图处理。得到原图像的直方图后,根据均衡化的变换函数通过计算得到所需要的增强效果的图像的直方图。

(1)生成图像的直方图。把原图像的直方图通过变换函数修正为分布比较均匀的直方图,从而改变图像整体偏暗或整体偏亮、灰度层次不丰富的情况,这种技术叫直方图均衡化。

设和分别表示原图像灰度级和经直方图均衡化后的图像灰度级。一幅给定的图像的灰度级分布在0≤r≤1范围内。可以对[0,1]区间内的任一个r值进行如下变换:

s=T(r)

通过上述变换,每个原始图像的像素灰度值r都对应产生一个s值。通过变换函数T(r)可以控制图像灰度级的概率密度函数,从而改变图像的灰度层次。

MATLAB图像处理工具箱提供了生成并绘制图像的直方图函数imhist(),图2-10是在电子显微镜下放大了近700倍的花粉图像,较暗且动态范围较低。图2-11是原图像的直方图,偏向于灰度级较暗端,直方图的区域对于整个灰度范围来说非常狭窄,因而使其较低的动态范围较为明显。程序代码如下:

f=imread('pollen.jpg');

imshow(f);

figure,imhist(f)。

img15

图2-10

img16

图2-11

(2)直方图均衡化。直方图均衡化是通过灰度变换将一幅图像转换为另一幅均衡直方图,即在每个灰度级上都具有相同的像素点数的过程。一般情况下,遥感图像灰度分别集中在较窄的区间,从而引起图像细节模糊,为了使图像细节清晰,并使一些目标得到突出,达到增强图像的目的,可采用直方图均衡化使原图像灰度集中的区域拉开,使灰度分布均匀,从而增强图像整体对比度,使图像细节清晰。经过直方图均衡化后,原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。

直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而可达到增强图像整体对比度的效果。设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。在灰度直方图均衡化处理中对图像的映射函数可定义为:g=EQ(f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数):

1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。

2)对于0≤f≤L-1有0≤g≤L-1,这个条件保证了变换前后灰度值动态范围的一致性。

累计分布函数(Cumulative Distribution Function,CDF)即可以满足上述两个条件,并且通过该函数可以完成将原图像的分布转换成均匀分布。此时的直方图均衡化映射函数为:

gk=EQ(fk)=(ni/n)=pf(fi)(k=0,1,2,Λ,L-1)

上述求和区间为0到k,根据该方程可以由原图像的各像素灰度值直接得到直方图均衡化后各像素的灰度值。在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出f k到gk的灰度映射关系。在重复上述步骤得到原图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对原图像各点像素进行灰度转换,即可完成对原图的直方图均衡化。

MATLAB图像处理工具箱提供了直方图均衡化函数histeq(),对图2-11进行直方图均衡化,直方图均衡化后的图像为图2-12,与原图像相比,增强效果十分明显。图2-13为图像均衡化后的直方图,可以看出,直方图中灰度级平均值高于原始值,在整个亮度上有明显扩展。程序代码如下:

f=imread('pollen.jpg');

g=histeq(f,256);

imshow(g);

figure,imhist(g)。

img17

图2-12

img18

图2-13

(3)直方图规定化。直方图均衡化的优点是得到近似均匀分布的直方图,自动增强整个图像的对比度,但它的具体增强效果不容易控制,处理的结果总是得到全局均匀化的直方图。但由于变换函数采用累积分布函数,也只能产生近似均匀的直方图的结果,这样就会限制它的效能。实际应用中,希望能够有目的地增强某个灰度区间的图像,即能够人为地修正直方图的形状,使之与期望的形状相匹配,这就是直方图规定化的基本思想。所谓直方图规定化,就是通过一个灰度映象函数,将原灰度直方图改造成所希望的直方图,所以,直方图修正的关键就是灰度映象函数。

换句话说,希望可以人为地改变直方图形状,使之成为某个特定的形状,直方图规定化就是针对上述要求提出来的一种增强技术,它可以按照预先设定的某个形状来调整图像的直方图。直方图规定化是在运用均衡化原理的基础上,通过建立原始图像和期望图像之间的关系,有选择地控制直方图,使原始图像的直方图变成规定的形状,从而弥补了直方图均衡不具备交互作用的特性。直方图匹配方法主要有三个步骤:

1)其增强原理是先对原始的直方图均衡化:S=T(r);

2)同时对规定的直方图均衡化:v=G(z);

3)由于都是均衡化,故令S=v,则:z=G-1(v)=G-1(s)。

所以,无须进行直方图均衡化运算就可以直接实现直方图规定化处理,通过复合函数关系有效简化了直方图规定化处理过程。

MATLAB图像处理工具箱提供了实现直方图规定化的函数和直方图均衡化的函数相同,即histeq(),并提供了用于调整一幅图像均匀分布灰度值的函数adapthisteq()。图2-14是火星卫星Phobos的一幅数字图像,有明显的黑暗区域,对应的直方图是图2-15,暗色分量过于集中在0附近。图2-16为对其均衡化后的图像,利用直方图均衡化方法没有得到特别好的效果,通过观察对应的直方图,如图2-17所示,灰度级已经移到了灰度级的上半部分,因而输出图像出现了褪色现象。利用函数adapthisteq()进行直方图规定化,直方图规定化后的结果为图2-18,与原图像相比,增强效果十分明显,直方图为2-19。程序代码如下:

f=imread('Phobos.jpg');

imshow(f);

figure,imhist(f);

g=histeq(f,256);

figure,imshow(g);

figure,imhist(g);

h=adapthisteq(f);

figure,imhist(h)。

img19

图2-14

img20

图2-15

img21

图2-16

img22

图2-17

img23

图2-18

img24

图2-19

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈