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