图像直方图处理:均衡化与规格化
一、 引言
图像直方图是描述图像像素强度分布的核心统计工具,其横坐标代表像素的灰度级,纵坐标代表该灰度级出现的频率。通过修改图像的直方图,可以有效地增强图像的对比度与改善其视觉效果。直方图均衡化与直方图规格化是两种最为常用且有效的图像增强技术。前者旨在自动地生成一幅具有均匀分布直方图的图像,后者则旨在将图像的直方图调整为某种特定的预设形状。
二、 直方图均衡化
1. 核心思想
直方图均衡化的核心目标是通过一个灰度变换函数,将输入图像的非均匀分布直方图,映射为一幅在整个灰度范围内近似均匀分布的直方图。这种处理能够显著扩展图像的动态范围,尤其适用于背景和前景都太亮或者太暗的图像。
2. 数学原理与算法
设输入图像为 II,其灰度级范围为 [0,L−1][0,L−1],其中 L 为灰度级总数(例如,对于8位图像,L=256)。定义以下变量:
n 为图像总像素数。
nk 为灰度级 k 出现的频数。
pr(rk)=nk 为灰度级 rk 的概率密度估计,即归一化直方图。
直方图均衡化通过寻找一个变换函数 s=T(r),使得输出灰度级 s 的概率密度 ps(s) 在整个区间内为常数(均匀分布)。在连续域中,该变换函数为原始灰度级累积分布函数:
s=T(r)=(L−1)∫0rpr(w) dw
在离散域中,我们使用累积分布函数的离散形式。算法步骤如下:
计算输入图像的归一化直方图:pr(rk)=nknfor k=0,1,…,L−1。
计算累积分布函数:sk=T(rk)=(L−1)∑j=0kpr(rj)。
将变换后的值舍入到最近的整数:sk←round(sk)。
映射像素值:将输入图像中每一个灰度级为 rk 的像素,其输出灰度值设置为对应的 sk。
3. 效果与局限性
效果:处理后图像的直方图在宏观上趋于平坦,动态范围得到扩展,图像的整体对比度得以增强,更多细节变得可见。
局限性:
处理是全局性的,无法针对图像局部区域的特性进行优化。
输出图像的直方图只是近似均匀,而非理想均匀。
可能过度增强背景噪声,或导致某些区域对比度“过增强”而显得不自然。
三、 直方图规格化
1. 核心思想
直方图规格化,亦称直方图匹配或规定化,是一种更具针对性的直方图处理技术。其目标不是产生均匀分布的直方图,而是将输入图像的直方图变换为匹配一个给定的目标直方图(规定直方图)。这使得我们可以根据特定需求(如模仿某类图像的色调风格、或为后续处理创造有利条件)来调整图像的灰度分布。
2. 数学原理与算法
设 pr(r)pr(r) 为输入图像的灰度概率密度函数,pz(z) 为期望的(规定的)输出图像灰度概率密度函数。目标是找到一个灰度变换函数 z=G−1(s),使得经过均衡化后的中间变量 s 能够映射到期望的灰度级 z。
算法步骤如下:
对输入图像进行直方图均衡化:计算其变换函数 s=T(r)=(L−1)∑j=0kpr(rj)。
对规定直方图同样进行“均衡化”:计算其变换函数 v=G(z)=(L−1)∑i=0qpz(zi)。
寻找逆变换:对于每一个均衡化后的输出值 sk,在 G(z)G(z) 中找到最接近的值 vq,即 vq≈sk。则与 vq 对应的 zq 即为输入灰度级 rk 所应映射到的输出灰度级。数学上,即 z=G−1(s)≈G−1(T(r))。
映射像素值:根据上述找到的映射关系,将输入图像中的每个像素灰度级 r 映射到输出灰度级 z。
3. 应用与注意事项
应用:常用于图像拼接前的色调一致性调整、医学图像的标准模板匹配、以及摄影领域的色彩风格迁移等。
注意事项:
规定直方图的选择至关重要,不合适的规-定直方图可能导致增强效果不佳甚至产生伪影。
由于是离散计算,步骤3中的逆变换 G−1 通常通过寻找最接近值来实现,这可能导致映射关系并非严格单射。
四、 总结对比
特征 | 直方图均衡化 | 直方图规格化 |
---|---|---|
目标 | 生成近似均匀的灰度分布。 | 生成与规定直方图相匹配的灰度分布。 |
变换函数 | 基于输入图像自身的累积分布函数 T(r)。 | 基于输入图像的 T(r)和规定直方图的逆累积函数 G−1。 |
灵活性 | 低,处理过程是自动和固定的。 | 高,可根据目标直方图灵活调整增强效果。 |
控制性 | 无用户控制参数,结果不可预测。 | 用户通过规定直方图对结果进行控制,目标明确。 |
核心关系 | - | z=G−1(T(r)) |