自适应直方图均衡化

自适应直方图均衡化（Adaptive Histogram Equalization, AHE），是一种用于提高图像对比的数字图像处理技术。它与普通直方图均衡化的不同之处在于自适应方法计算多个直方图，每个直方图对应于图像的不同部分，并使用这些直方图重新分配图像的亮度值。因此，它适用于提高局部对比度和增强图像每个区域的边缘清晰度。

然而，AHE 倾向于过度放大图像相对均匀区域中的噪声。一种称为限制对比度自适应直方图均衡化(CLAHE)的变体通过限制放大来防止这种情况发生。

 方法的动机和原理 
普通直方图均衡化使用从图像直方图导出的相同变换来变换所有像素。当整个图像的像素值分布相似时，这很有效。然而，当图像包含明显比大部分图像更亮或更暗的区域时，这些区域的对比度将不会得到充分增强。

自适应直方图均衡化 (AHE) 通过使用从邻域区域计算出的变换函数来变换每个像素，从而解决这个问题。它最初用于飞机驾驶舱显示器。 D. J. Ketcham, R. W. Lowe & J. W. Weber: Image enhancement techniques for cockpit displays. Tech. rep., Hughes Aircraft. 1974.R. A. Hummel: Image Enhancement by Histogram Transformation. Computer Graphics and Image Processing 6 (1977) 184195. 它的最简形式是，每个像素都根据像素周围正方形的直方图进行变换，如下图所示。从直方图推导出变换函数与普通直方图均衡化完全相同：即变换函数与邻域中像素值的累积分布函数（CDF）成正比。
居中|300x300像素
图像边界附近的像素必须特别处理，因为它们的邻域不会完全位于图像内，例如图中蓝色像素左侧或上方的像素。可以通过以图像边界为轴镜像行和列像素来扩展图像，来达到这一目的。简单地复制边界上的像素线是不合适的，因为它会导致邻域直方图峰值过高。

 AHE的特性 

 邻域区域的大小是该方法的一个参数。它决定了一个长度尺度：在比该值更小的尺度上，对比得到增强，而较大尺度上对比反而降低。
 由于直方图均衡化的性质，AHE下像素的结果值与其在邻域像素中的大小排序成正比。这个操作在可以将中心像素与附近其他像素进行比较的专业硬件上可以高效地实现。 S. M. Pizer, E. P. Amburn, J. D. Austin, et al.: Adaptive Histogram Equalization and Its Variations. Computer Vision, Graphics, and Image Processing 39 (1987) 355-368.可以为每个值小于中心像素的像素加 2，为每个值等于中心像素的像素加1，来得到一个未归一化的结果。
 当包含像素邻域的图像区域有着较为均匀的强度时，其直方图将被强烈地峰值化，并且变换函数会将窄范围的像素值映射到结果图像的整个范围。这会导致 AHE 过度放大图像大致均匀区域中的少量噪声。 K. Zuiderveld: Contrast Limited Adaptive Histogram Equalization. In: P. Heckbert: Graphics Gems IV, Academic Press 1994, 

 限制对比度自适应直方图均衡化（CLAHE） 
一般的 AHE 倾向于过度放大图像接近一致的区域的对比，因为这些区域的直方图高度集中。因此，AHE 可能会导致噪声在比较接近的区域中被放大。 限制对比度自适应直方图均衡化（Contrast Limited AHE，CLAHE）是自适应直方图均衡化的一种变体，通过限制放大程度，减少噪声放大这一问题。 S. M. Pizer, E. P. Amburn, J. D. Austin, et al.: Adaptive Histogram Equalization and Its Variations. Computer Vision, Graphics, and Image Processing 39 (1987) 355-368.

在 CLAHE 中，给定像素值附近的对比度放大由变换函数的斜率给出。这与邻域累积分布函数(CDF) 的斜率成正比，因此与该像素值处的直方图值成正比。 CLAHE 通过在计算 CDF 之前将直方图裁剪为预定义值来限制放大。这限制了 CDF 的斜率，因此也限制了转换函数的斜率。直方图被剪裁的值，即所谓的剪裁限制，取决于直方图的归一化，从而间接取决于邻域区域的大小。常见的做法是将放大限制在 3 到 4 之间。

最好不要丢弃直方图中超过裁剪限制的部分，而是在所有直方图直条之间平均重新分配它。 S. M. Pizer, E. P. Amburn, J. D. Austin, et al.: Adaptive Histogram Equalization and Its Variations. Computer Vision, Graphics, and Image Processing 39 (1987) 355-368.
居中|300x300像素
重新分配将再次使得一些直条超过裁剪限制（图中绿色阴影区域），导致直方图超出规定的限制，其具体值取决于图像。如果不希望这样，可以递归地重复重新分配过程，直到超出的部分可以忽略不计。

 通过插值进行高效计算 
上面介绍的直接形式的自适应直方图均衡化，无论有没有对比度限制，都需要为图像中的每个像素计算不同的邻域直方图和变换函数，这使得该方法计算代价非常昂贵。

插值可以在不影响结果质量的情况下显著提高效率。 S. M. Pizer, E. P. Amburn, J. D. Austin, et al.: Adaptive Histogram Equalization and Its Variations. Computer Vision, Graphics, and Image Processing 39 (1987) 355-368.图像被分割成大小相等的矩形块，如下图右侧部分所示。 （8列8行共64块是常见的选择。K. Zuiderveld: Contrast Limited Adaptive Histogram Equalization. In: P. Heckbert: Graphics Gems IV, Academic Press 1994, ISBN 0-12-336155-9 ）。然后为每个图块计算直方图、CDF 和变换函数。变换函数适用于平铺中心像素（图中左侧的黑色方块）。使用最多四个与中心像素最接近的图块的转换函数进行转换，并通过插值计算出所有其他像素的像素值。大部分图像（蓝色阴影）中的像素使用双线性插值得到，靠近边界的像素（绿色阴影）则用线性插值得到，边角附近的像素（红色阴影）使用角块的变换函数进行变换。插值系数反映了像素到最近的图块的中心像素之间的位置，因此随着像素接近图块中心，结果是连续的。
居中|450x450像素
此过程显著减少了要计算的变换函数的数量，并且只增加了线性插值的少量额外成本。

 通过直方图增量更新进行高效计算 
平铺图像的另一种方法是一次“滑动”矩形一个像素，仅通过每次添加新像素行并减去留在最后的像素行来实现。T. Sund & A. Møystad: Sliding window adaptive histogram equalization of intra-oral radiographs: effect on diagnostic quality. Dentomaxillofac Radiol. 2006 May;35(3):133-8.该算法被原作者称为 SWAH(Sliding Window Adaptive Histogram Equalization，滑动窗口自适应直方图均衡化）。这样直方图计算的计算复杂度从O (N² )降低到O (N )（其中N = 周围矩形的像素宽度）；并且由于没有平铺，因此不需要最后的插值步骤。

 参见 

 直方图均衡化
 阴影和高光增强

參考資料


6. G. R. Vidhya and H. Ramesh, "Effectiveness of contrast limited adaptive histogram equalization technique on multispectral satellite imagery", Proc. Int. Conf. Video Image Process., pp. 234-239, Dec. 2017.

 外部链接 

 在 OpenCV 中使用 CLAHE 的教程 
 在马克斯普朗克分子细胞生物学和遗传学研究所展示 CLAHE 效果的示例图像
 CLAHE 教程
 原始 CLAHE 论文的作者之一 Karel Zuiderveld 在 ANSI C 中实现 CLAHE 的示例 
Category:图像处理