图像增强的目的是根据主观视觉感知或者机器判读的需要来改善图像的质量,有选择 地强调图像中感兴趣的整体或局部特征或者抑制图像中不需要的特征,使图像更适合特定 的应用。当以人类视觉解释为目的时,依据观察者的主观判断作为图像质量评价标准;当 以机器识别为目的时,依据机器识别的准确率作为图像质量评价标准。图像增强是一个主 观过程,不存在通用的数学模型。图像增强方法主要分为两类:空域方法和频域方法。空 域是指图像空间本身,这类方法是对图像的像素直接进行处理。频域是指图像的傅里叶变 换域,这类方法通过离散傅里叶变换将图像从空域转换到频域,利用频域滤波器对图像的 不同频率成分进行处理。本章讨论空域图像增强方法,第 4 章将讨论频域变换和频域增强 方法。 3.1 背景知识 在讨论各种空域图像增强方法之前,首先介绍空域图像增强的概念以及直方图的概念 和表示意义。通过观察直方图可以更好地理解灰度级变换的作用,以及直方图变换的目的 和效果。 3.1.1 概述 空域图像增强是指直接对图像的像素本身进行操作,空域增强大致可分为两类:点处 理和邻域处理。对于点处理,在像素 (x, y) 处 g (x, y) 的值仅取决于 f (x, y) 的值,可表示为 g (x, y) = E [f (x, y)] (3-1) 式中,E [] 表示增强算子,f (x, y) 为输入图像,g (x, y) 为增强图像。设 r 表示输入图像的 灰度级,s 表示增强图像的灰度级,点处理操作即为灰度级映射,可表示为 s = T (r) (3-2) 式中,T (r) 为变换函数。式 (3-2) 表明,对图像中任意像素的增强仅依赖于该像素的灰度 级,因此这类方法称为点处理。 增强函数 s = T (r) 应满足如下两个条件: (1)T (r) 在 0 . r . 1 区间内为单调递增函数; (2)对于 0 . r . 1,有 0 . T (r) . 1。 第一个条件保证了灰度级从暗到亮的次序不变;第二个条件保证了输出灰度级与输入 灰度级具有相同的灰度级范围。其中,输入灰度级 r 归一化到 [0, 1] 区间。 像素 (x, y) 的邻域定义为中心位于像素 (x, y) 处的局部区域。对于邻域处理,像素 (x, y) 处 g (x, y) 的值是以像素 (x, y) 为中心的局部邻域所有像素值的函数: g (x, y) = E ff (ξ, ζ)g , (ξ, ζ) 2 Uxy (3-3) 54 式中,Uxy 表示以像素 (x, y) 为中心的邻域像素集合。式 (3-3) 表明,对图像中任意像素 的增强,作用于该像素局部邻域的所有像素,因此这类方法称为邻域处理。如图 3-1 所示, g (x, y) 的值不仅取决于 f (x, y) 的值,而且取决于中心在坐标 (x, y) 处的 3  3 正方形局 部邻域像素的值。空域滤波方法属于邻域处理。 图 3-1 邻域处理示意图 3.1.2 灰度直方图 直方图是数字图像处理中一个重要的基础工具。直方图提供了图像的统计信息,为理 解多种空域增强技术的机理提供了铺垫。直方图操作能够直接用于图像增强,见 3.3 节的 直方图图像增强技术。 1. 直方图 直方图计算图像中具有各个灰度值的像素数或发生概率,是数字图像的统计量。对于灰 度图像,灰度直方图反映了图像中不同灰度像素出现的统计情况,描述了像素的灰度分布。 数字图像的灰度直方图 h (rk) 是统计各灰度级 rk, k = 0, 1,    ,L .. 1 的像素出现的次 数,定义为 h (rk) = nk, k = 0, 1,    ,L .. 1 (3-4) 式中,rk 表示第 k 个灰度级,nk 表示灰度级 rk 的像素个数,L 表示灰度级数。 图像中灰度值为 rk 的像素出现的次数与像素总数的比值,称为概率直方图或归一化 直方图,可表示为 p (rk) = nk n , k = 0, 1,    ,L .. 1 (3-5) 式中,n 为图像中的像素总数。p (rk) 是统计各灰度级 rk 的像素出现的概率,实际上表 示灰度级 rk, k = 0, 1,    ,L .. 1 的分布律。在概率直方图中,所有灰度级的概率之和等 于 1。 55 图像的直方图可以提供图像的如下信息:.1 各个灰度级像素出现的概率;.2 图像灰度 级的动态范围;.3 整幅图像的大致平均亮度;.4 图像的整体对比度情况。图像的直方图具 有如下三个主要性质。 (1)直方图是总体灰度的概念,反映了图像整体的灰度分布情况。如图 3-2(a) 所示, 亮度偏暗图像的直方图集中在灰度级的暗端;相反,如图 3-2(b) 所示,亮度偏亮图像的直 方图集中在灰度级的亮端。如图 3-2(c) 所示,低对比度图像的直方图集中在灰度级中较窄 的范围。如图 3-2(d) 所示,高对比度图像的直方图覆盖较宽的灰度动态范围并且分布较 均匀。 图 3-2 四种基本类型图像的直方图 (2)直方图表示数字图像中不同灰度像素出现的统计信息,它只能反映该图像中不同 灰度像素出现的次数(概率),不能表示像素的位置等其他信息。图像与直方图之间是多对 一的映射关系,具体地说,任意一幅图像,都能唯一地确定与之对应的直方图,但是,不 同的图像可能具有相同的直方图。 (3)直方图具有可叠加性,将图像划分为区域,各个区域可分别统计直方图,整幅图 像的总直方图为各个区域直方图之和。 在图像处理中图像的直方图主要有四方面的应用。 (1)直方图可以用于判断一幅图像是否合理地利用了全部可能的灰度级。直观上来说, 若一幅图像的像素充分占有整个灰度级范围并且分布比较均匀,则这样的图像具有高对比 度和多灰阶。根据直方图的灰度分布可以判断曝光是否恰当,设置成像设备的参数,如感 光度、光圈、快门速度和曝光时间等,或者确定灰度级变换规则,如伽马校正。 (2)图像的视觉效果与其直方图之间存在对应关系,改变直方图的形状对图像产生对 应的影响。因此,处理直方图可以起到图像增强的作用,例如,直方图均衡化、直方图规 定化、直方图拉伸等。 (3)通过观察直方图,可在图像分割中确定合适的阈值,尤其适用于双峰模式直方图 的全局阈值分割问题,并能够根据直方图对区域进行像素数统计。 56 (4)将直方图作为特征,通过度量直方图之间的距离,可用于模板匹配、目标识别等 任务。 2. 累积直方图 累积直方图(cumulative histogram)c (rk) 是计算灰度值落在 [0, rk] 区间上的像素在 图像中出现的累加概率,定义为 c (rk) = k Xj=0 p (rj) = k Xj=0 nj n , 0 . rj . 1; k = 0, 1,    ,L .. 1 (3-6) 式中,rk 表示第 k 个灰度级,p (rk) 表示灰度级 rk 的像素在图像中出现的概率,nk 表示 图像中灰度级 rk 的像素个数,n 为图像中的像素总数,L 表示灰度级数。累积直方图实 际上是概率直方图 p (rk) 关于灰度级 rk 的累积分布。累积直方图一定是单调递增的(不 一定严格单调递增),且 0 . c (rk) . 1,第 L 个灰度级(k = L .. 1)的累积分布函数值 c (rL.1) = 1。 3.2 灰度级变换 灰度级变换是通过函数表达式实现灰度级映射,这是一类最简单的图像增强技术。设 r 和 s 分别表示输入图像和输出图像的灰度级,s = T (r) 表示将灰度级 r 映射为灰度级 s 的变换。灰度级变换与像素的坐标无关,只与灰度级有关。线性函数、幂次函数和对数函 数/指数函数是图像增强中三类最常用的基本灰度级变换曲线。图 3-3 显示了这三类函数的 典型例子,.1 为线性函数,.2 和 .3 是互为反函数的幂次函数,.4 和 .5 是互为反函数的 对数函数和指数函数。其中,输入灰度级 r 归一化到 [0, 1] 区间。 图 3-3 图像增强中的基本灰度级变换曲线 57 3.2.1 幂次变换 幂次变换的一般表达式为 s = crγ (3-7) 式中,c 为常数,γ 为指数的幂。当常数 c = 1 时,γ 和 1/γ 的幂函数互为反函数。图 3-4 显示了不同 γ 值的幂函数曲线,其中,输入灰度级 r 的范围归一化到 [0, 1] 区间。当斜率 大于 1 时,拉伸灰度动态范围;当斜率小于 1 时,压缩灰度动态范围;当斜率等于 1 时, 不改变灰度动态范围。 γ > 1 和 γ < 1 的幂函数的作用相反,当 γ < 1 时,拉伸直方图灰度级暗端的动态 范围,提高图像中暗区域的对比度,而压缩灰度级亮端的动态范围,降低亮区域的对比度; 当 γ > 1 时,拉伸直方图灰度级亮端的动态范围,提高图像中亮区域的对比度,而压缩灰 度级暗端的动态范围,降低暗区域的对比度。在图像增强中,对于灰度级整体偏暗的图像, 使用 γ < 1 的幂函数可以增大灰度动态范围;对于灰度级整体偏亮的图像,使用 γ > 1 的 幂函数可以增大灰度动态范围。 图 3-4 不同 γ 值的幂函数曲线,常数 c = 1 例 3-1 幂次变换在图像增强中的应用 通过图 3-5 和图 3-6 来观察 γ < 1 和 γ > 1 幂次变换在图像增强中的作用。图 3-5(a) 为一幅曝光不足的图像,右图为对应的直方图,直方图偏向灰度级的暗端。对于这种整体 偏暗的情况,γ < 1 的幂函数能够拉伸灰度直方图的占用范围。图 3-5(b) 为 γ = 0.5 的幂 次变换的结果及其直方图,可以看到,这种灰度级变换增强了图像的对比度,并提高了脸 部等暗区域的亮度。图 3-6(a) 为一幅曝光过度的图像,右图为对应的直方图,直方图偏向 灰度级的亮端。对于这种整体偏亮的情况,γ > 1 的幂函数能够拉伸灰度直方图的占用范 围。图 3-6(b) 为 γ = 2 的幂次变换的结果及其直方图,从直方图来看,这种灰度级变换使 像素值整体移向直方图灰度级的暗端,并拉伸了图像的对比度。 58 图 3-5 γ = 0.5 的幂次变换图像增强示例 图 3-6 γ = 2 的幂次变换图像增强示例 59 图 3-6 (续) 3.2.2 对数变换 对数变换的一般表达式为 s = cloga (1 + r) (3-8) 式中,c 为常数,a 为对数的底数。对数变换的作用是压缩图像的动态范围。图 3-7 显示了 不同底数的对数变换曲线,底数越大,压缩程度越大,图中 c = 1。 图 3-7 不同底数的对数变换曲线 对数变换的一个典型应用是傅里叶变换幅值谱à的显示。傅里叶系数的幅值为 0  106 数量级甚至更高,具有很大的动态范围,通用的成像和显示系统采用均匀量化,因此,在 8 位灰度级系统中无法显示幅值谱的细节。对数变换可以起到压缩图像动态范围的作用,减 小最大值与最小值之间的反差值。 à 第 4 章将详细讨论傅里叶变换及其幅值谱。 60 例 3-2 对数变换在傅里叶变换幅值谱显示中的应用 以图像方式显示幅值谱是对傅里叶变换可视化的一种手段,在显示之前通过计算幅值 谱的对数变换来压缩幅值谱图像显示的动态范围,增强灰度细节。为了直观说明对数变换 在幅值谱图像显示中的作用,对图 3-8(a) 所示的灰度图像显示其幅值谱以及对数变换的幅 值谱,分别如图 3-8(b) 和图 3-8(c) 所示,其中左图为图像方式显示,右图为对角方向的径 向剖面图。幅值谱的值域为 9.144, 7.227  106,当这样的值在 8 位灰度级系统中均匀量 化而显示时,如图 3-8(b) 所示,幅值谱中的最大值(零频率分量)淹没了其他相对低的幅 值,对应的高频区域的细节信息几乎完全丢失了,在图像中显示为黑色,只能观察到最大 幅值表现出的亮点。根据式 (3-8) 的对数变换对幅值谱进行动态范围压缩,则值域缩小至 [2.317, 15.793],再用 8 位灰度级显示对数幅值谱(dB),如图 3-8(c) 所示,即将对数幅值 谱的范围线性映射为 8 位灰度级的量化范围 [0, 255]。与图 3-8(b) 相比,幅值谱的细节可 见度是显而易见的。在本书中显示的幅值谱都使用对数变换和重尺度化à进行了处理。 图 3-8 对数变换应用于傅里叶变换幅值谱的显示 3.2.3 指数变换 指数变换为对数变换的反函数,一般表达式为 s = c (ar .. 1) (3-9) à 详见 3.4.1 节中重尺度化的数学公式。 61 式中,c 为常数,a 为指数的底数。指数变换的作用是拉伸图像的动态范围。图 3-9 显示了 不同底数的指数变换曲线,底数越大,拉伸程度越大,图中 c = 1。 图 3-9 不同底数的指数变换曲线 指数变换的一个典型应用是对数变换的对消。在以照度-反射模型为基础的图像增强方 法中,如 Land 提出的 Retinex 算法、同态滤波等,首先对图像进行对数变换,在对数域 中将乘法运算转换为加法运算,这样能够利用线性滤波进行图像增强,然后使用指数变换 对图像进行反变换,以抵消对数变换的作用。 3.2.4 分段线性变换 分段线性变换的一般表达式为 s = 8> >>>>>><> >>>>>>: s1 r1 r, 0 . r < r1 s2 .. s1 r2 .. r1 (r .. r1) + s1, r1 . r . r2 s2 .. 1 r2 .. 1 (r .. 1) + 1, r2 < r . 1 (3-10) 图 3-10(a) 显示了分段线性函数,点 (r1, s1) 和 (r2, s2) 的位置控制了变换函数的形状,其 中 r1 . r2,s1 . s2。曝光不足、曝光过度和传感器动态范围过窄等都会造成图像表现出低 对比度。分段线性变换的作用是拉伸图像的对比度,是一种重要的灰度级变换。 当 s1 = 0 且 s2 = 1 时,式 (3-10) 的分段线性变换可简化为 s = r .. r1 r2 .. r1 , r1 . r . r2 (3-11) 如图 3-10(b) 所示,将灰度级范围从 [r1, r2] 线性拉伸到 [0, 1],其中,r1 和 r2 分别为线性 拉伸的下限和上限。如图 3-10(c) 所示,通过截断一定比例的最亮像素和最暗像素,并使 62 中间亮度像素占有整个灰度级,提高图像的全局对比度。图中 Plow 和 Phigh 分别表示截断 的最暗和最亮像素的比例,rlow 和 rhigh 分别表示图像所占灰度级范围的最小值和最大值。 这种情况通常称为对比度拉伸或直方图剪裁,广泛应用于图像预处理中。 当 r1 = s1 且 r2 = s2 时,式 (3-10) 的分段线性函数退化为线性函数。当 r1 = r2, s1 = 0 且 s2 = 1 时,式 (3-10) 的分段线性函数退化为阈值函数。 图 3-10 分段线性函数 例 3-3 分段线性函数在图像增强中的应用 图 3-11 给出了一个分段线性函数应用于图像对比度拉伸的图例。如图 3-11(a) 所示,水 下 图 像 对 比 度 低, 由 直 方 图 可 见, 图 像 的 像 素 值 集 中 分 布 在 较 窄 的 灰 度 级 范 围。 MATLAB 图像处理工具箱中的 stretchlim 函数根据截断像素的比例计算对比度拉伸的上、 下限,imadjust 函数根据上、下限进行对比度拉伸处理。截断 1%的最暗像素和最亮像素, 确定对比度拉伸的下限 r1 = 0.4392 和上限 r2 = 0.7412,在直方图中用符号“”标记。将 输入图像的灰度级范围从 [r1, r2] 线性拉伸到 [0, 1]。图 3-11(b) 为对比度拉伸的结果,由图 中可见,图像的对比度明显增强。对比度增强包括全局对比度增强和局部对比度增强。对比 度拉伸是一种全局对比度增强方法,这类方法能够增强图像中某些局部区域的对比度,同 63 时也会降低其他局部区域的对比度;而局部对比度增强利用图像的局部特性,同时增强图 像的全局和局部对比度。 图 3-11 对比度拉伸图像增强示例 3.3 直方图变换 直方图变换通过对灰度直方图进行变换,达到对图像处理的目的,实现图像增强。直方 图规定化是指通过灰度级变换将输入图像的直方图变换为特定的函数形式,也称为直方图 匹配。直方图均衡化是直方图规定化的特例,它将输入图像的直方图变换为均匀分布函数。 3.3.1 直方图映射函数 直方图变换本质上是灰度级变换,是一种点处理方法。设 r 表示输入图像的灰度级,s 表示输出图像的灰度级,直方图变换可表示为灰度级变换函数 s = T (r),其中,0 . r, s . 1。 T (r) 的选取应满足增强函数的两个条件,第一个条件理论上应为严格单调递增函数,保证 反函数的存在。满足上述条件的反函数表示为 r = T.1 (s) (3-12) 反函数同样满足这两个条件。 通过建立输入直方图 pr (r) 和输出直方图 ps (s) 之间的映射关系,求映射函数 s = T (r)。为了简化表述,从连续型随机变量的概率密度函数入手进行讨论。以随机变量 R = 64 R(r) 和 S = S (s) 分别表示输入灰度级 r 和输出灰度级 s,pr (r) 表示输入灰度级 R 的 概率密度函数,ps (s) 表示输出灰度级 S 的概率密度函数。当概率密度函数存在时,累积 分布函数(也称为分布函数)是概率密度函数的积分,描述了连续型随机变量的概率分布。 设 Fs (s) 表示随机变量 S 的分布函数,Fr (r) 表示随机变量 R 的分布函数,根据分布函 数的定义,则有 Fs (s) .1 === P fS < sg .2 === P fT (R) < sg .3 === P R < T.1 (s) .4 === P fR < rg .5 === Fr (r) (3-13) 式中,P () 表示随机事件发生的概率;T (r) 为严格单调递增函数,即 r = T.1 (s) 存在。 .1 、.5 应用了分布函数的定义;.2 应用了随机变量 S 是 R 的函数 s = T (r);.3 应用了 T (r) 为严格单调递增函数;.4 应用了 r = T.1 (s)。 式 (3-13) 表明,若 S 是关于 R 的函数 s = T (r),则可以通过分布函数建立了输出灰 度级 s 与输入灰度级 r 之间的映射关系。图 3-12 解释了输出灰度级 s 与输入灰度级 r 之 间映射关系的几何意义,直方图映射是寻找分布函数 Fs (s) 和 Fr (r) 相等时 s 与 r 之间的 映射关系,即 r 映射为 s 的变换函数 s = T (r)。 图 3-12 输出灰度级 s 与输入灰度级 r 之间映射关系的几何解释 65 3.3.2 直方图均衡化 当直方图中像素值占有较宽的灰度动态范围,且分布较为平坦时,图像呈现高对比度。 直方图均衡化是对直方图进行变换,使输入图像的直方图变换为均匀分布直方图。图 3-13 直观描述了直方图均衡化的机理。均匀分布随机变量 S 的概率密度函数为 ps (s) = 1,分 布函数为 Fs (s) = s。依据式 (3-13),直方图均衡化直接寻找 s 和 Fr (r) 相等时 s 与 r 之 间的映射关系。对于连续变量的情况,使用变换函数 s = Fr (r) 可以使 s 的函数为均匀分 布函数à。然而,输入图像的灰度级是离散变量,且均匀分布直方图的组(bin)数也是离 散形式,对于离散均匀分布直方图的情况,s = Fs (s) 不成立。 图 3-13 直方图均衡化的机理 对于 M 个组的均匀分布直方图,M . L,均匀分布直方图各组的概率相等,均为 ps (l) = 1 M ,l = 0, 1,    ,M .. 1,将直方图组线性映射到图像的整个灰度级范围,计算 公式为 sl = round Fs (l) .. Fs (0) 1 .. Fs (0)  (L .. 1), l = 0, 1,    ,M .. 1 (3-14) 式中,Fs (l) = l Xj=0 ps(j) 表示组 l 的累积直方图,L 为图像的灰度级数,M 为直方图的组 à 证明过程详见电子文档。 66 数。式 (3-14) 是直方图组 l 到图像灰度级 sl 的映射,sl 的灰度级范围为无符号整型表示 [0,L .. 1],若表示为归一化的灰度级,则将 sl 除以 L .. 1。 对于 L 个灰度级的数字图像,第 k 个灰度级为 rk,灰度级 rk 的像素数为 nk,像素 总数为 n,计算输入图像灰度级 rk 的累积直方图 Fr (rk) 为 ck = Fr (rk) = k Xj=0 pr (rj) = k Xj=0 nj n , k = 0, 1,    ,L .. 1 (3-15) 式中,pr (rk) 为概率直方图。 已知 sl,计算均匀分布直方图 ps (sl) 的累积直方图为 .sl = Fs (sl) = l Xj=0 ps(sj), l = 0, 1,    ,M .. 1 (3-16) 在离散情况下,变换函数 s = Fr (r) 实际上是对于各个 k,寻找 l 满足 .l = arg min l jck .. .slj , k = 0, 1,    ,L .. 1; l = 0, 1,    ,M .. 1 (3-17) 式 (3-17) 表明,对于第 k 个输入灰度级 rk,寻找输入累积直方图与均匀分布的累积直方 图最小时,在均匀分布直方图中对应的组 l。 求取输入灰度级 rk 与输出灰度级 sl 之间的映射关系分为两个步骤:.1 输入灰度级 rk 到均匀分布直方图组 l 的映射;.2 均匀分布直方图组 l 到输出灰度级 sl 的映射。 由式 (3-17) 可推导出输入灰度级 rk 到均匀分布直方图组 l 的映射关系为 l = max [round (Mck) .. 1, 0] (3-18) 式中,round () 表示四舍五入运算,ck = Fr (rk) 是输入图像灰度级 rk 的累积直方图,M 为直方图的组数。式 (3-18) 表示的映射关系为 ck 2 0, 1.5 M ! 0 ck 2 l + 0.5 M , l + 1.5 M ! l, l = 1, 2,    ,M .. 2 ck 2 M .. 0.5 M , 1! M .. 1 图 3-14 以 M = 4 为例直观说明了式 (3-18) 的映射关系。 67 图 3-14 式 (3-18) 的图形解释 式 (3-18) 将输入 L 个灰度级映射到 M 个均匀分布直方图组,拉伸直方图使输出图像 覆盖整个灰度级范围 0  L .. 1。直方图组 l 到输出灰度级 sl 的映射为 sl = round l M .. 1 (L .. 1) (3-19) 式中,l = max [round (MFr (rk)) .. 1, 0]。当 M = L 时,即均匀分布直方图的组数等于输 入图像灰度级数,sl = max [round (LFr (rk)) .. 1, 0]。式 (3-19) 是 L 个灰度级的无符号整 数表示,若除以 L .. 1,则将灰度级 sl 归一化到 [0, 1]。 直方图均衡化的具体可执行步骤描述如下: (1)根据式 (3-15) 计算输入图像灰度级 rk 的累积直方图 Fr (rk)。 (2)根据式 (3-18) 和式 (3-19) 确定输入灰度级与输出灰度级之间的映射关系 rk ! sl, 将输入图像中灰度级为 rk 的像素映射到输出图像中灰度级为 sl 的对应像素。 (3)统计输出图像灰度级 sl 的概率直方图 .ps (sl)。 表 3-1 给出了一个直方图均衡化示例的具体计算过程,输入图像的灰度级范围为 [0,L .. 1],灰度级数 L 为 8,均匀分布直方图组数 M 与灰度级数 L 相等。图 3-15 比 较了表 3-1 给出示例的直方图均衡化处理前后的概率直方图,图 3-15(a) 和图 3-15(b) 为 输入直方图及其累积直方图,图 3-15(c) 和图 3-15(d) 为均匀分布直方图及其累积直方图, 图 3-15(e) 和图 3-15(f) 为输出直方图及其累积直方图。比较图 3-15(a) 和图 3-15(e) 可见, 直方图中同一灰度级的像素不能拆分,不同灰度级的像素通常会合并。在映射过程中可能 会导致将多个不同的 rk 映射到相同的灰度级 sl,不同输入灰度级 rk 的像素在灰度级映射 后归并到同一输出灰度级 sl 的像素中。因此,所使用的灰度级数会减少,从而导致细节信 息的损失。 绘图计算是一种简单且直观的方式,使用灰度条表示累积直方图,每一段对应直方图 中的一个灰度级。对于表 3-1 中的输入直方图 [图 3-15(a)],图 3-16 给出了一个当 M < L 时的直方图均衡化示例,灰度级数 L = 8,均匀分布直方图组数 M = 4。通过绘图计算方 式直观说明直方图均衡化的灰度映射法则,映射法则确定 ck 和 .sl 之间的最近邻关系,图 中直线连接了输入累积直方图与均匀分布累积直方图之间最接近的数值,即最短的连线。 68 表 3-1 直方图均衡化的计算步骤,像素总数 n 为 4096,灰度级数 L 为 8,均匀分布直方图组数 M = L 步骤 rk 0 1 2 3 4 5 6 7 序号 nk 508 821 898 892 552 181 159 85 1a pr (rk) = nk/n 0.124 0.2 0.219 0.218 0.135 0.0442 0.0388 0.0208 1b ck = Fr (rk) 0.124 0.324 0.543 0.761 0.896 0.940 0.979 1 2a sl = max [round (Lck) . 1, 0] 0 2 3 5 6 7 7 7 2b rk → sl 0→0 1→2 2→3 3→5 4→6 5, 6, 7→7 3 .ps (sl) 0.124 0 0.2 0.219 0 0.218 0.135 0.104 图 3-15 直方图均衡化前后直方图比较(M = 8) 69 图 3-16 直方图均衡化的绘图计算 图 3-17(a) 和图 3-17(b) 为均匀分布直方图及其累积直方图,横轴为直方图组。根据 式 (3-14) 将直方图组映射到图像灰度级,如图 3-17(c) 和图 3-17(d) 所示,横轴为灰度级。 图 3-17(e) 和图 3-17(f) 为直方图均衡化的输出直方图及其累积直方图,将输入直方图的 8 个灰度级映射为输出的 4 个灰度级。对于离散变量而言,直方图均衡化无法实现完全均 匀分布的直方图,输出直方图的概率近似为均匀分布。当 M 远小于灰度图像中的灰度级 数 L 时,输出图像的直方图更加平坦,同时,输入的多个灰度级会映射到输出更少的灰度 级上。 图 3-17 直方图均衡化前后直方图比较(M = 4) 70 图 3-17 (续) 例 3-4 直方图均衡化在图像增强中的应用 图 3-18(a) 为一幅低亮度图像及其直方图,该图像整体偏暗,在直方图中的表现为像 素灰度主要分布在灰度级的暗端。使用 MATLAB 图像处理工具箱的 histeq 函数进行直方 图均衡化。指定均匀分布直方图具有 64 个组,即 M = 64。图 3-18(b) 为直方图均衡化的 结果及其直方图,从直方图中可以看出,变换后图像的动态范围扩展到整个灰度级上,并 且大致平坦,在图像中表现为对比度明显增强。需要说明的是,直方图均衡化使一幅图像 的像素值占有全部可能的灰度级且分布尽可能均匀,尽管从视觉效果上提高了图像的对比 度,但是,由于直方图中概率较小的灰度级合并为更少的几个或一个灰度级,从而减少了 图像的灰度层次,且某些细节像素的概率较小,在直方图均衡化过程中归并到概率较大的 灰度级中,从而造成图像细节发生失真。 图 3-18 直方图均衡化图像增强示例 71 3.3.3 直方图规定化 一般的情况要求图像具有特定形状的直方图,以便于有选择地对图像中某个特定的灰 度级范围进行增强,或使其满足后续处理的特定需求。直方图规定化是将输入直方图变换 为任意某种特定形状的直方图。 根据式 (3-13),将输入直方图 pr (r) 变换成规定直方图 ps (s),则 s 关于 r 的映射函 数 s = T (r) 为 s = F.1 s (Fr (r)) (3-20) 式中,Fr (r) 和 Fs (s) 分别为 pr (r) 和 ps (s) 的分布函数。在实际计算中,无须计算反函 数,直接寻找 Fr (r) 到 Fs (s) 的映射。 设输入图像灰度级 rk 的概率直方图为 pr (rk),k = 0, 1,    ,L..1,L 为输入图像的灰 度级数;规定直方图为 ps (sl),l = 0, 1,    ,M .. 1,M 为规定直方图的组数,且 L . M。 直方图规定化的具体执行步骤描述如下: (1)对输入图像的概率直方图 pr (rk) 计算其累积直方图: Fr (rk) = k Xi=0 pr (ri), k = 0, 1,    ,L .. 1 (3-21) (2)对规定直方图 ps (sj) 计算其累积直方图: Fs (sl) = l Xj=0 ps (sj), l = 0, 1,    ,M .. 1 (3-22) (3)根据灰度映射法则,确定输入灰度级与输出灰度级之间的映射关系 rk ! sl,将输 入图像中灰度级 rk 的像素映射到输出图像中灰度级 sl 的对应像素; (4)统计输出图像灰度级 sl 的概率直方图 .ps (sl)。 灰度映射法则是直方图规定化的关键,不同的映射关系,会产生不同的规定化结果。单 映射法则(single mapping law, SML)和组映射法则(group mapping law, GML)是两种 常用的灰度映射法则à。 单映射法则 Fr (rk) ! Fs (sl) 对于各个 k 寻找 l,满足 min l k Xi=0 pr (ri) .. l Xj=0 ps (sj) , k = 0, 1,    ,L .. 1 (3-23) 组映射法则 Fs (sl) ! Fr (rk) 确定满足如下公式的最小整数函数 k (l): min k(l) k(l)X i=0 pr (ri) .. l Xj=0 ps (sj) , l = 0, 1,    ,M .. 1 (3-24) à 1992 年 Zhang 提出了直方图规定化的组映射法则,单映射的命名是相对于组映射而言。式 (3-17) 和式 (3-23) 均为 单映射法则。 72