我想知道“对比度拉伸”和“直方图均衡化”的区别。
我尝试使用OpenCV进行了两种技术的操作,并观察了结果,但我仍然不理解两种技术之间的主要区别。期待你的帮助。
我尝试使用OpenCV进行了两种技术的操作,并观察了结果,但我仍然不理解两种技术之间的主要区别。期待你的帮助。
首先定义一下对比度(Contrast):
对比度是图像“范围”的一种度量方式;即它的强度分布有多广。它有很多正式的定义,其中一个著名的是 Michelson 的公式:
他说 对比度 = ( Imax - Imin )/( Imax + I min )
对比度与图像整体视觉质量密切相关。 理想情况下,我们希望图像使用其可用的所有值。
对比度拉伸(Contrast Stretching)和直方图均衡化(Histogram Equalisation)有着相同的目标: 让图像使用其可用的所有值。
但它们使用不同的技术。 对比度拉伸的作用类似于映射
它将图像中最小的强度值映射到范围内的最小值(例如上面的示例中的 84 ==> 0)
同样的方法,它将图像中最大的强度值映射到范围内的最大值(例如上面的示例中的 153 ==> 255)
这就是为什么对比度拉伸是不可靠的,如果只有两个像素具有 0 和 255 强度,则它完全没有用。
然而,更好的方法是直方图均衡化,它使用概率分布。您可以在这里了解相关步骤。
对比度是最大像素强度和最小像素强度之间的差异。
这两种方法都用于增强对比度,更准确地说,是调整图像强度以增强对比度。
在直方图均衡化期间,直方图的整体形状会发生变化,而在对比度拉伸中,直方图的整体形状保持不变。