我想知道对比度拉伸和直方图均衡之间的区别。
我已经尝试过使用 OpenCV 并观察了结果,但我仍然不了解这两种技术之间的主要区别。洞察力将是非常需要的帮助。
我想知道对比度拉伸和直方图均衡之间的区别。
我已经尝试过使用 OpenCV 并观察了结果,但我仍然不了解这两种技术之间的主要区别。洞察力将是非常需要的帮助。
让我们先定义对比度,
对比度是图像“范围”的量度;即它的强度分布如何。它有许多正式的定义,其中一个著名的是 Michelson 的:
他说contrast = ( Imax - Imin )/( Imax + I min )
对比度与图像的整体视觉质量密切相关。理想情况下,我们希望图像使用它们可用的整个范围的值。
对比度拉伸和直方图均衡具有相同的目标:使图像使用其可用的整个值范围。
但他们使用不同的技术。 对比度拉伸的工作方式类似于映射
它将图像中的最小强度映射到范围内的最小值(在上面的示例中为 84 ==> 0)
以同样的方式,它将图像中的最大强度映射到范围内的最大值(上例中为 153 ==> 255)
这就是为什么对比度拉伸不可靠的原因,如果只有两个像素具有 0 和 255 的强度,它是完全没用的。
然而,更好的方法是使用概率分布的直方图均衡化。你可以在这里学习步骤
经过一番阅读,我发现了以下几点。
对比度拉伸就是增加图像中最大强度值和最小强度值之间的差异。所有其余的强度值都分布在此范围之间。
直方图均衡是关于修改图像中所有像素的强度值,使直方图“变平”(实际上,直方图不能完全变平,会有一些波峰和一些波谷,但这是一个实际问题)。
在对比度拉伸中,源图像和目标图像之间的强度值存在一一对应的关系,即可以从对比度拉伸后的图像中恢复出原始图像。
但是,一旦执行直方图均衡化,就无法取回原始图像。
对比度拉伸是一种线性归一化,它拉伸图像强度的任意区间并将该区间拟合到另一个任意区间(通常目标区间是图像的可能最小值和最大值,如 0 和 255)。
直方图均衡化是一种非线性归一化,它拉伸具有高丰度强度的直方图区域并压缩具有低丰度强度的区域。
对比度是最大和最小像素强度之间的差异。
这两种方法都用于增强对比度,更准确地说,是调整图像强度以增强对比度。
在直方图均衡期间,直方图的整体形状发生变化,而相比之下,直方图的整体形状保持不变。
我认为对比度拉伸拓宽了图像强度水平的直方图,因此输入范围周围的强度可以映射到整个强度范围。
另一方面,直方图均衡化根据累积分布函数或概率将所有像素映射到全范围。