数字图像处理 - 直方图均衡化



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

在执行直方图均衡化之前,您必须了解直方图均衡化中使用的两个重要概念。这两个概念称为 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

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

让我们将此技术应用于原始图像。应用后,我们得到了以下图像及其相应的直方图。

直方图均衡化图像

equalized image

此图像的累积分布函数

CDF

直方图均衡化直方图

Histogram

比较两个直方图和图像

Compare

结论

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

广告