直方图是进行数据统计的一个简单、高效和常用的工具,灰度直方图也是数字图像处理中一个常用工具。灰度直方图是基于图像灰度值和像素统计分布的形象表示,它概括地表示了一幅图像的灰度级信息。在数字图像处理中灰度直方图是灰度级的函数,它描述了图像中具有该灰度级的像素的个数,其横坐标是灰度级,纵坐标是该灰度出现的频率(像素的个数)。任何一幅图像的直方图都包括了该图像的许多特征信息,某些特定类型的图像甚至可由直方图来完全描述。
一个灰度范围为[0, L -1]的数字图像的直方图是一个离散函数:
其中, r k 是第 k 级灰度值, n k 是图像中灰度为 r k 的像素个数。
在实践中,经常用乘积 MN 表示的图像总像素除每个分量来归一化直方图,通常 M 和 N 是图像的行数和列数。因此,归一化后的直方图为:
其中, k =0,1,…, L -1。简单地说, p ( r k )是灰度级 r k 在图像中出现的概率的估计。归一化直方图的所有分量之和应该等于1。
图3-8所示的四张原始图像分别代表暗图像、亮图像、低对比度图像和高对比度图像,原始图的右侧显示了这些图像的直方图。每个直方图的水平轴为灰度值 r k ,垂直轴为值 h ( r k )= n k 或归一化后的值 p ( r k )= n k / MN 。
图3-8 四种基本类型图像以及它们相对应的直方图
我们注意到,暗图像直方图的分量集中在灰度级低(暗)的一端,亮图像直方图的分量则倾向集中于灰度级高的一端,低对比图像的直方图灰度级范围较窄,高对比图像直方图的分量覆盖了较宽的灰度级范围。直观上,可以得出这样的结论:若一幅图像的像素倾向于占据整个可能的灰度级并且分布均匀,则该图像会有较高的对比度,并展示灰色调的较大变化。
直方图具有以下性质:
1)直方图反映的是一幅图像中各像素灰度值出现次数或频率的统计结果,它只反映该图像中不同灰度值出现的频率,而不能反映某一灰度值像素所在的位置信息。即直方图仅包含了该图像中某一灰度值的像素出现的概率,而丢失了其所在位置的信息。
2)任一幅图像,都能唯一确定一个与之对应的直方图。但不同的图像,可能有相同的直方图。也就是说,图像与直方图之间是一种多对一的映射关系。
3)由于直方图是对具有相同灰度值的像素统计计数得到的,若某一幅图像由若干子图像区域构成,那么各子区域直方图之和就等于原图像的直方图。
直方图给出了一个简单、直观的可视化指标,可用于判断一幅图像是否合理地利用了全部被允许的灰度值范围。若图像亮度具有超出量化器所能量化的范围,则这些灰度级将被简单的置为0或255,这时,根据直方图的定义和意义,在其一端或两端将产生尖峰。对直方图的快速检查可以使数字化中产生的问题及早暴露出来,以便及时纠正。
假设一幅图像背景是浅色的,图中有一个深色的物体,图3-9所示为这类图像的双峰直方图。物体中的深色像素产生了直方图上的左峰,而浅色像素的灰度级产生了直方图上的右峰。物体边界处于两个峰值之间,其灰度级的像素数目相对较少,从而产生了两峰之间的谷。选择谷作为灰度阈值将图像二值化,将得到物体的边界。
在某种意义上来说,选择对应两峰之间的最低点的灰度值作为阈值来确定边界是较为合适的。在谷底附近,直方图的值相对较小,意味着面积函数随阈值灰度级的变化很缓慢。如果选择谷底处的灰度作为阈值,将对图像内物体边界的影响最小。
图3-9 双峰直方图
某些情况下,综合光密度是图像质量中一个很有用的度量,利用直方图可直接计算出综合光密度值。综合光密度用IOD来表示,以二维数字图像为例,则综合光密度为
其中, I ( x , y )是图像 I 中像素点( x , y )处的灰度值。 N L 和 N S 分别是图像行和列的数目。
令 N k 代表灰度级为 k 时所对应的像素的个数,则式(3-8)可以转化为
由于 N k = H ( k ),因此有
即综合光密度是用灰度级加权的直方图之和。