图像预处理|直方图均衡

直方图是什么

图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比
图像是由像素构成,因为反映像素分布的直方图往往可以作为图像一个很重要的特征。

背景

采集的图像可能光照情况不统一,有的图像欠曝,有的图像过曝。

含义

(目标)如果一副图像的像素占有很多的灰度级而且分布均匀,那么这样的图像往往有高对比度变的灰度色调
(输入)直方图均衡化就是一种能仅靠输入图像直方图信息自动达到这种效果的变换函数。
(方式)它的基本思想是对图像中像素个数多的灰度级进行展宽,而对图像中像素个数少的灰度进行压缩
(结果)从而扩展像原取值的动态范围,提高了对比度和灰度色调的变化,使图像更加清晰。

优缺点

对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。

这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。

这种方法的一个缺点是它对处理的数据不加选择它可能会增加背景杂讯的对比度并且降低有用信号的对比度

变换后图像的灰度级减少,某些细节消失;某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。


数学理解

设原始图像在(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)即可以满足上述两个条件,并且通过该函数可以完成将原图像f的分布转换成g的均匀分布。

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

直白地理解直方图均衡化:简单来说,直方图均衡化是要找到一个对应函数s=F(r),r为输入信号图像,s为输出信号图像。我们的目的就是寻找F的表达。想象一下,一个未处理的图像,其直方图是位于灰度值的一个狭小区域,用俗话说就是直方图很窄。我们要把它变成一个直方图很宽的图像,那么,这需要一个拉伸函数。显而易见,这个函数必须保证,图像中原有像素的大小顺序不能变,否则会要改变原图像中表达的内容。这时候我们想到了累积分布函数。为了方便理解,反过来讨论下为什么找累积分布函数。首先,一般来说灰度图像像素是在0-255之间的取值,那么如果要把像素尽可能的分布于0-255之间,在分布的时候,要考虑到原本图像的灰度值在某个灰度区间内的密度不同。举个例子,图像r原本像素分布在100-150之间,且140-150集中了原先像素的绝大部分像素值,这个时候,如果让原来的图像按线性函数(起点是原点的45°直线)映射到0-255是行不通的,线性函数并不能表达原来像素值的密度分布情况。然而,累积分布函数是与原来的像素在某个特定区间内分布情况有着很强的关联性。如果对原来的像素做累积,发现在140-150间的像素占了影响累积函数变化的绝大部分。累积函数只是一个表达原本像素在区间内的分布规律,它很好的表达了原图像中各个像素在灰度值为100-150的区间内的分布情况。这时候我们用这个分布情况来乘以255,就把这个分布情况拉伸至了0-255区间。如果把这个乘积作为像素值形成新的图像s,就会发现原本窄的直方图就会被拉伸之至0-255,同时也很好的保留了原本图像中的像素值分布在灰度上的分布规律。以上的过程就是从输入图像r到输出图像s的过程,这个累积函数就是我们要找的映射函数F。

参考资料




猜你喜欢

转载自blog.csdn.net/darlingwood2013/article/details/72636723