⚠️ 这是一个非官方翻译网站,与 ImageMagick Studio LLC 无关。准确信息请参阅原文(https://imagemagick.org/clahe/)

直方图均衡化(CLAHE)

使用对比度受限自适应直方图均衡化(AHE)来改善图像的对比度。普通的直方图均衡化计算的是全局均衡化,而自适应方法会计算多个直方图,每个直方图对应图像的一个不同区域,并用它们来重新分布图像的明度值。它适合改善局部对比度,并增强图像中各区域边缘的清晰度。自适应直方图均衡化的一个变体——对比度受限自适应直方图均衡化(CLAHE)——限制了 AHE 在图像中相对均质区域过度放大噪声的倾向。

自 ImageMagick 7.0.8-24 起,通过 -clahe 选项支持 CLAHE:

-clahe widthxheight{%}{+}number-bins{+}clip-limit{!}

图像被划分为宽 width、高 height 像素的若干图块。追加 % 可将宽度和高度定义为图像尺寸的百分比。图块尺寸应大于需要保留的特征的尺寸,并会保持图像的纵横比。添加 ! 可强制使用精确的图块宽度和高度。number-bins 是每个图块的直方图箱数(最小 2,最大 65536)。直方图箱数应小于单个图块中的像素数。clip-limit 是局部对比度变化的对比度限制。从 2 到 3 的 clip-limit 开始是个不错的选择(例如 -clahe 50x50%+128+3)。非常大的值会让直方图均衡化随意发挥,即产生最大的局部对比度。值 1 会得到原始图像。注意,如果省略箱数和 clip-limit,它们分别默认为 128 和不裁剪。

为了直观展示 CLAHE 的好处,我们准备了一张低对比度的山脉图像:

label

我们可以用全局直方图均衡化来改善图像:

label

我们还可以用对比度受限自适应直方图均衡化这一图像处理技术进一步改善图像:

label

后一张图像是用以下命令生成的:

magick mountains.jpg -clahe 25x25%+128+3 mountains-clahe.jpg

25x25% 这个参数将图像划分为 16 个图块以执行局部对比度增强。图像尺寸为 1500x1000,因此每个图块正好是 375x250 像素。除了百分比,你也可以用 375x250 直接指定图块尺寸。

对于无法整除图像尺寸的图块尺寸,CLAHE 会使用虚拟像素,因此结果可能会根据你所选的虚拟像素方法而略有不同。例如,

magick mountains.jpg -virtual-pixel mirror -clahe 300x300+128+3! mountains-clahe.jpg

请注意 !。它会将图块尺寸强制为正好 300x300 像素,而没有 ! 时,图块尺寸会保持图像的纵横比,结果得到 300x200 的图块尺寸。