为了讨论方便起见,以 \(r\) 和 \(s\) 分别表示原图像灰度和经直方图均衡化后的图像灰度,先把图像灰度值放缩到 \(0\) 至 \(1\) 之间。直方图均衡化,本质上是找一个变换函数 \(T\) 来实现灰度变换,使得各个灰度值的点数除了 \(0\)
\[s=T(r) \tag{1} \]
式中,\(T(r)\)
- 在 \(0≤r≤1\) 时,\(T(r)\)
- 在 \(0≤r≤1\) 内有 \(0≤T(r)≤1\)。(此条件保证了均衡化后图像的像素灰度值在允许的范围内)
上式逆变换关系为:
\[r=T^{-1} (s) \tag{2} \]
式中,\(T^{-1} (s)\) 对 \(s\)
由概率论可知,如果已知随机变量 \(r\) 的概率密度是 \(p_r(r)\),而随机变量 \(s\) 是 \(r\) 的函数,则 \(s\) 的概率密度 \(p_s(s)\) 可以由 \(p_r (r)\) 求出。假定随机变量 \(s\) 的分布函数用 \(F_s (s)\)
\[F_s (s)=\int_{-\infty}^s p_s (s)ds =\int_{-\infty}^r p_r (r)dr \tag{3} \]
式\(3\)的积分上限 \(s\) 和 \(r\) 满足式\(2\)。
根据概率密度函数是分布函数的导数,上式两边对 \(s\)
\[p_s (s)=\frac{dF_s (s)}{ds} =\frac{d\left[\int_{-\infty}^r p_r (r)dr\right]}{ds} =p_r (r)\frac{dr}{ds}=p_r (r) \frac{dr}{d[T(r)]} \tag{4} \]
从上式可以看出,通过变换函数 \(T(r)\) 可以控制图像灰度级的概率密度函数 \(p_s (s)\),从而改善图像的灰度层次,这就是直方图均衡化的理论基础。
因此要做直方图均衡化,就是希望 \(p_s (s)\)
由概率论知识可知,对于区间 \([a,b]\) 上的均匀分布,其概率密度函数等于 \(1/(b-a)\)。 对于归一化的图像,有 \(p_s (s)=1/(1-0) =1\)。
\[p_s (s)ds=p_r (r)dr \tag{5} \]
\[ds=p_r (r)dr \tag{6} \]
\[s=T(r)=\int_0^r p_r (r)dr \tag{7} \]
上式就是我们所求的变换函数 \(T(r)\)。它表明当变换函数 \(T(r)\)
对于灰度级为离散的数字图像,用频率来代替概率,则变换函数 \(T(r_k)\)
\[s_k=T(r_k)=\sum_{i=0}^k p_r (r_i) = \sum_{i=0}^k n_i/N \tag{8} \]
式中,\(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\)