增强本地对比度

原则

传感器图像通常具有较大的动态范围。虽然具有高精度对于复杂的处理是有帮助的,但通常很难显示高动态图像,即使在现代屏幕上,因为基本屏幕的动态范围是8比特,而图像可以使用12或16比特(甚至更多!)进行编码。

original result

这个 ContrastEnhancement 应用程序旨在通过以比线性压缩更智能的方式重新组织图像来降低图像的动态化,并改善局部对比度和增强边缘的清晰度。

image1 image2

直方图的均衡化创建了一个查找表,以最大化动态。目标直方图是完全平坦的。应用于每个像素的增益来自传递函数的计算 T 以使:

\forall i \quad \int_{min}^{i*T(i)}h_{istogram}(j)dj = \int_{min}^{i}h_{target}(j)dj

哪里 h_{target} 是对应的平面直方图,其约束是在均衡化后白色和黑色仍然是白色和黑色:

T(min) = T(max) = 1

可以将此转换应用于 ContrastEnhancement 应用程序:

otbcli_ContrastEnhancement -in input_image.tif
                           -out output_image.tif
                           -spatial global

它在不丢失细节和对比度的情况下压缩了动态。

高级参数

这个 ContrastEnhancement 提供不同的选项来配置对比度增强方法。让我们看看它们是用来做什么的:

首先,你想要平衡的是什么。有两种模式可用:

  • luminance: 在3个波段图像上,将在单个波段上进行均衡,该单个波段将是原始波段的组合。然后将计算出的增益应用于不同的频段。这种方法的经典用法是保存不同颜色之间的比例和保存色调。
  • channel: 每个波段被独立地均衡。

另一种选择是局部均衡。您可以选择用于将图像分割为平铺的窗口大小,并在这些平铺上计算直方图。为了获得平滑的结果,将在相邻的平铺之间进行增益内插。

otbcli_ContrastEnhancement -in input_image.tif
                           -out output_image.tif spatial.local.h 500
                           -spatial.local.w 500
                           -mode lum

这个 ContrastEnhancement 应用程序还提供了一种限制对比度的方法,即使用 hfact 参数。限制系数表示直方图的任何桶可以具有的限制高度;应用程序计算平面直方图的高度,最大高度是限制系数乘以这个“平面高度”。

image4

最后,您可以使用 nodata 参数,并手动设置最小值和最大值。任何超出范围的值都将被忽略。