对比度拉伸和直方图均衡化的区别。

25
我想知道“对比度拉伸”和“直方图均衡化”的区别。
我尝试使用OpenCV进行了两种技术的操作,并观察了结果,但我仍然不理解两种技术之间的主要区别。期待你的帮助。
6个回答

28

首先定义一下对比度(Contrast):

对比度是图像“范围”的一种度量方式;即它的强度分布有多广。它有很多正式的定义,其中一个著名的是 Michelson 的公式:

他说 对比度 = ( Imax - Imin )/( Imax + I min )

对比度与图像整体视觉质量密切相关。 理想情况下,我们希望图像使用其可用的所有值。

对比度拉伸(Contrast Stretching)和直方图均衡化(Histogram Equalisation)有着相同的目标: 让图像使用其可用的所有值。enter image description here

但它们使用不同的技术。 对比度拉伸的作用类似于映射

它将图像中最小的强度值映射到范围内的最小值(例如上面的示例中的 84 ==> 0)

同样的方法,它将图像中最大的强度值映射到范围内的最大值(例如上面的示例中的 153 ==> 255)

这就是为什么对比度拉伸是不可靠的,如果只有两个像素具有 0 和 255 强度,则它完全没有用。

然而,更好的方法是直方图均衡化,它使用概率分布。您可以在这里了解相关步骤。


5
你可以使用百分位数进行对比度拉伸,这样数值为0或255的像素就不会影响结果。这将采用一定比例的图像信息进行处理。 - lesolorzanov

10
我在阅读后得出以下结论: 对比度拉伸是指增加图像中最大强度值和最小强度值之间的差异。其余所有强度值都分布在这个范围内。 直方图均衡化是指修改图像中所有像素的强度值,使直方图“平坦化”(实际上,直方图不能完全被平坦化,会有一些峰和一些谷,但这是一个实践问题)。
对比度拉伸中,源图像和目标图像之间的强度值存在一一对应的关系,即可以从对比度拉伸后的图像恢复原始图像。
然而,一旦执行了直方图均衡化,就没有办法获取回原始图像。

7
在直方图均衡化中,您希望将直方图变成均匀分布。

enter image description here

在对比度拉伸中,您可以操纵整个强度值范围,就像在归一化中所做的那样。

enter image description here


3
请注意,对比度拉伸也称为直方图拉伸。在这里,您可以“拉伸”或压缩直方图,但不需要使其均匀化。 - Debvrat Varshney

6
对比度拉伸是一种线性归一化方法,它可以拉伸图像中任意强度区间,并将其适应到另一个任意的区间(通常目标区间是图像可能的最小值和最大值,如0和255)。
直方图均衡化是一种非线性归一化方法,它可以拉伸具有高丰度强度的直方图区域,并压缩低丰度强度的区域。

3
我认为对比度拉伸可以扩展图像强度级的直方图,因此输入范围周围的强度可以映射到完整的强度范围。另一方面,直方图均衡化根据累积分布函数或概率将所有像素映射到完整范围。

3

对比度是最大像素强度和最小像素强度之间的差异。

这两种方法都用于增强对比度,更准确地说,是调整图像强度以增强对比度。

在直方图均衡化期间,直方图的整体形状会发生变化,而在对比度拉伸中,直方图的整体形状保持不变。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接