摘 要:对常规的直方图均衡算法进行了改进,避免了不同灰度的像素均衡后被合并、图像细节丢失等现象。实验结果表明,改进的直方图均衡新算法既能充分增强图像的对比度,又能保持图像的局部细节,使图像具有更加自然的视觉效果。
关键词:直方图均衡;权值;图像增强;细节保持
直方图均衡方法因其有效性和简单易用性已经成为图像增强的常用方法[1]。其基本思想是根据输入图像的灰度概率分布来确定图像对应的灰度输出值,通过拓展图像灰度分布的动态范围以改善图像的视觉效果,从而达到提升图像对比度的目的。直方图均衡方法有局部均衡和全局均衡2种。局部均衡可以更好地增强图像的局部细节,局部方法有子块不重叠、子块重叠与[2-3]子块部分重叠[4]3种方式。其中,子块不重叠方式因产生明显的块效应而很少采用;子块重叠方式由于计算量大、处理速度慢,实际应用也不多;子块部分重叠方式虽然可以较好地提高处理速度,但是其算法相对复杂。与局部方法相比,全局算法比较简单,不但处理速度较快,而且对提高图像整体对比度的效果显著,但是也存在灰度级合并的缺点,造成图像的灰度级减少,细节部分变得模糊。
本文针对传统的全局直方图均衡算法的不足,提出了改进方法,给出了改进后的灰度变换映射关系,使图像分布更加均匀,增强了图像的层次感,同时在一定程度上保持了图像的细节。
1 传统的直方图均衡算法
1.1 直方图均衡算法
全局直方图均衡通过改变输入图像直方图各灰度级的概率分布,使输出图像各灰度级分布变得相对均匀,从而使图像的对比度得到增强,其处理过程如下:
(1)计算原图像的灰度级直方图。
(2)求得原图像各灰度级的累积概率分布函数,并由此构造灰度转换函数。
(3)根据灰度转换函数将原图像所有像素灰度值映射到输出图像。
1.2 传统的全局直方图均衡算法的弊端
由于直方图均衡化算法来源于连续函数,而数字图像的灰度是离散值,对应用于数字图像的灰度变换函数进行了从连续到离散的近似,因而直方图均衡不可避免地存在以下问题:
(1)变换后图像的灰度级减少,某些细节丢失。由于量化误差的存在,使原本不同灰度的像素在直方图变换后,以相同灰度显示,即出现了灰度被吞噬的现象,从而造成了部分信息丢失。
(2)变换后图像出现局部过亮或伪轮廓现象。直方图均衡只是改变原图像中同一灰度层上所有像素的灰度,并不能改变单个像素点在灰度层上的分布。这使得直方图均衡算法在处理灰度呈现两端分布或偏暗图像时,容易出现图像过亮或伪轮廓等现象,因而得不到满意的视觉效果。
针对上述不足,本文提出改进方法,使改进后的算法保留传统算法简单高效的优点,在提高图像对比度的同时,有效地保持了图像的细节信息。
2 直方图均衡算法改进方法
2.1 改进思路
在传统的直方图均衡化中,存在的显著问题是:分布较小的图像灰度级rmin存在被分布较大的图像灰度级rmax所淹没的趋势。这是因为灰度级为rmax的像素总数N(rmax)比灰度级为rmin的像素总数N(rmin)大很多,因此可以根据需要设定1个灰度区间[M,N],尝试减少N(rmax)与N(rmin)之间的差距,使得分布较小的图像灰度级rmin不易被分布较大的图像灰度级rmax所淹没,但同时又要适当反映出这个差距。这样就可以通过改变输入图像各灰度级所占的比重来达到图像细节保持的目的。
针对上述情况,在直方图均衡算法中进行两方面的改进。首先,采用函数f(x)=xm(0≤m≤1,x为整数),也就是引入了加权因子m[5],这样可以较好地改善不同灰度级所占的比重,使分布较小的图像灰度级rmin所占的比重相对变大,而分布较大的图像灰度级rmax所占的比重相对变小;其次,对传统直方图均衡算法的映射关系加以改变。最终通过改变输入图像各灰度级所占比重来减少灰度级合并的可能性,达到图像细节保持的目的。