直方图均衡化

我们已经看到,可以使用直方图拉伸来增加对比度。在本教程中,我们将了解如何使用直方图均衡化来增强对比度。

在执行直方图均衡化之前,您必须了解直方图均衡化中使用的两个重要概念。这两个概念称为 PMF 和 CDF。

它们在我们的 PMF 和 CDF 教程中进行了讨论。请访问它们以成功掌握直方图均衡化的概念。

直方图均衡化

直方图均衡化用于增强对比度。对比度不一定总是会增加。在某些情况下,直方图均衡化可能会更糟。在这种情况下,对比度会降低。

让我们通过将下面的图像作为简单图像来开始直方图均衡化。

图像

einstein

此图像的直方图

此图像的直方图如下所示。

equalize1

现在我们将对其进行直方图均衡化。

PMF

首先,我们必须计算此图像中所有像素的 PMF(概率质量函数)。如果您不知道如何计算 PMF,请访问我们的 PMF 计算教程。

CDF

我们的下一步涉及计算 CDF(累积分布函数)。同样,如果您不知道如何计算 CDF,请访问我们的 CDF 计算教程。

根据灰度计算 CDF

例如,让我们考虑一下,第二步计算出的 CDF 如下所示。

灰度值 CDF
0 0.11
1 0.22
2 0.55
3 0.66
4 0.77
5 0.88
6 0.99
7 1

然后在此步骤中,您将 CDF 值与(灰度级(减)1)相乘。

假设我们有一个 3 bpp 图像。那么我们拥有的级别数为 8。1 减 8 等于 7。因此我们将 CDF 乘以 7。这是我们相乘后得到的结果。

灰度级值 CDF CDF * (级别-1)
0 0.11 0
1 0.22 1
2 0.55 3
3 0.66 4
4 0.77 5
5 0.88 6
6 0.99 6
7 1 7

现在我们到了最后一步,我们必须将新的灰度值映射到像素数。

假设我们的旧灰度值具有这些像素数。

灰度值 频率
0 2
1 4
2 6
3 8
4 10
5 12
6 14
7 16

现在,如果我们将新值映射到,那么这就是我们得到的结果。

灰度值 新灰度值 频率
0 0 2
1 1 4
2 3 6
3 4 8
4 5 10
5 6 12
6 6 14
7 7 16

现在将这些新值映射到直方图上,就完成了。

让我们将这种技术应用到原始图像上。应用后,我们得到了以下图像及其直方图。

直方图均衡化图像

均衡图像

此图像的累积分布函数

CDF

直方图均衡化直方图

直方图

比较直方图和图像

比较

结论

从图像中可以清楚地看到,新图像的对比度得到了增强,其直方图也得到了增强已经均衡。这里还有一件重要的事情需要注意,在直方图均衡化过程中,直方图的整体形状会发生变化,而在直方图拉伸过程中,直方图的整体形状保持不变。