为了讨论方便起见,以 \(r\) 和 \(s\) 分别表示原图像灰度和经直方图均衡化后的图像灰度,先把图像灰度值放缩到 \(0\) 至 \(1\) 之间。直方图均衡化,本质上是找一个变换函数 \(T\) 来实现灰度变换,使得各个灰度值的点数除了 \(0\) 外,高度尽可能相等。这个变换记为
式中,\(T(r)\) 应当满足以下两个条件:
- 在 \(0≤r≤1\) 时,\(T(r)\) 为单调递增函数;(此条件保证了均衡化后图像的灰度级从黑到白的次序不变)
- 在 \(0≤r≤1\) 内有 \(0≤T(r)≤1\)。(此条件保证了均衡化后图像的像素灰度值在允许的范围内)
上式逆变换关系为:
式中,\(T^{-1} (s)\) 对 \(s\) 同样满足上述的两个条件。
由概率论可知,如果已知随机变量 \(r\) 的概率密度是 \(p_r(r)\),而随机变量 \(s\) 是 \(r\) 的函数,则 \(s\) 的概率密度 \(p_s(s)\) 可以由 \(p_r (r)\) 求出。假定随机变量 \(s\) 的分布函数用 \(F_s (s)\) 表示,根据分布函数的定义有
式\(3\)的积分上限 \(s\) 和 \(r\) 满足式\(2\)。
根据概率密度函数是分布函数的导数,上式两边对 \(s\) 求导可得:
从上式可以看出,通过变换函数 \(T(r)\) 可以控制图像灰度级的概率密度函数 \(p_s (s)\),从而改善图像的灰度层次,这就是直方图均衡化的理论基础。
因此要做直方图均衡化,就是希望 \(p_s (s)\) 是均匀分布的概率密度函数。
由概率论知识可知,对于区间 \([a,b]\) 上的均匀分布,其概率密度函数等于 \(1/(b-a)\)。 对于归一化的图像,有 \(p_s (s)=1/(1-0) =1\)。
上式就是我们所求的变换函数 \(T(r)\)。它表明当变换函数 \(T(r)\) 是原图像直方图的累积分布概率时,能达到直方图均衡化的目的。
对于灰度级为离散的数字图像,用频率来代替概率,则变换函数 \(T(r_k)\) 的离散形式可以表示为:
式中,\(0≤r_k≤1,k = 0,1,2,...,L-1\)(注:这里的 \(r_k=k/(L-1)\),表示归一化后的灰度级;\(k\) 表示归一化前的灰度级)。由公式\(8\)可以知道,均衡化后各像素的灰度级 \(s_k\) 可直接由原图像的直方图算出来。需要说明的是,这里的 \(s_k\) 也是归一化后的灰度级,其值在 \(0\) 到 \(1\) 之间;有时需要将其乘以 \(L-1\) 再取整,使其灰度级范围在 \(0\) 到 \(L-1\) 之间,与原图像一致。