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

Difference between contrast stretching and histogram equalization

我想知道对比度拉伸直方图均衡的区别。

我都尝试过使用 OpenCV 并观察了结果,但我仍然没有理解这两种技术之间的主要区别。见解将是非常需要的帮助。

对比度拉伸是一种线性归一化,它拉伸图像强度的任意区间并将该区间拟合到另一个任意区间(通常目标区间是图像可能的最小值和最大值,如 0 和 255 ).

直方图均衡化是一种非线性归一化,拉伸直方图丰度高的区域,压缩丰度低的区域。

经过一番阅读,我发现了以下几点。

对比度拉伸 就是增加图像中最大强度值与最小强度值之间的差异。所有其余的强度值都分布在这个范围内。

直方图均衡化就是修改图像中所有像素点的强度值,使得直方图为"flattened" (实际上,直方图不能完全变平,会有一些峰和一些谷,但这是一个实际问题)。

对比度拉伸中,源图像和目标图像的强度值存在一对一的关系即,可以从对比度拉伸图像恢复原始图像。

但是,一旦直方图均衡化,就无法恢复原图了。

让我们先定义对比度,

对比度 是图像“范围”的度量;即它的强度有多分散。它有许多正式的定义,其中一个著名的是迈克尔逊的:

他说contrast = ( Imax - Imin )/( Imax + I min )

Contrast is strongly tied to an image’s overall visual quality. Ideally, we’d like images to use the entire range of values available to them.

对比度拉伸和直方图均衡具有相同的目标:使图像使用它们可用的整个值范围。

但他们使用不同的技术。 对比度拉伸 像映射一样工作

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

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

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

然而,更好的方法是使用概率分布的直方图均衡。您可以学习步骤here

我认为对比度拉伸拓宽了图像强度级别的直方图,因此输入范围附近的强度可以映射到整个强度范围。

直方图均衡,另一方面,根据累积分布函数或概率将所有像素映射到全范围。

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

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

During histogram equalization the overall shape of the histogram changes, whereas in contrast stretching the overall shape of histogram remains same.

在直方图均衡化中,您想将直方图展平成均匀分布。

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