本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

adapthisteq

对比度受限的自适应直方图均衡化 (CLAHE)

说明

示例

J = adapthisteq(I) 使用限制对比度的自适应直方图均衡化 (CLAHE) 来变换值,从而增强灰度图像 I 的对比度 [1]

J = adapthisteq(I,Name,Value) 指定其他名称-值对组。参数名称可以使用缩写,不区分大小写。

示例

全部折叠

对图像应用 CLAHE 并显示结果。

I = imread('tire.tif');
J = adapthisteq(I,'clipLimit',0.02,'Distribution','rayleigh');
imshowpair(I,J,'montage');
title('Original Image (left) and Contrast Enhanced Image (right)')

将索引彩色图像读入工作区。

[X, MAP] = imread('shadow.tif');

将索引图像转换为真彩色 (RGB) 图像,然后将 RGB 图像转换为 L*a*b* 颜色空间。

RGB = ind2rgb(X,MAP);
LAB = rgb2lab(RGB);

将值缩放到 adapthisteq 函数预期的范围 [0 1]。

L = LAB(:,:,1)/100;

对 L 通道执行 CLAHE。缩放结果,使其回到 L*a*b* 颜色空间使用的范围。

L = adapthisteq(L,'NumTiles',[8 8],'ClipLimit',0.005);
LAB(:,:,1) = L*100;

将生成的图像转换回 RGB 颜色空间。

J = lab2rgb(LAB);

显示原始图像和处理后的图像。

figure
imshowpair(RGB,J,'montage')
title('Original (left) and Contrast Enhanced (right) Image')

增强图像中的阴影区域看起来更暗,高光区域看起来更亮。整体对比度得到改善。

输入参数

全部折叠

输入强度图像,指定为二维数值数组。

数据类型: single | double | int16 | uint8 | uint16

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN

示例: 'NumTiles',[8 16] 将图像分成 8 行 16 列的图块。

adapthisteq 将图像分割成的矩形上下文区域(图块)的数量,指定为由正整数组成的二元素向量。原始图像分成大小为 MN 列的图块,'NumTiles' 的值为 [M N]MN 都必须至少是 2。图块总数等于 M*N。图块的最佳数量取决于输入图像的类型,最好通过试验来确定。

数据类型: double

对比度增强限制,指定为 [0, 1] 范围内的实数标量。限值越高,对比度越大。

'ClipLimit' 是对比度因子,用于防止图像的同质区域出现过饱和现象。由于许多像素落在相同的灰度级范围内,这些区域在图像图块的直方图中呈现尖峰特征。在没有限幅的情况下,自适应直方图均衡化方法在某些情况下可能会产生比原始图像更差的结果。

数据类型: double

用于构建对比度增强变换的直方图 bin 数,指定为正整数标量。值越高,动态范围越大,处理速度也越慢。

数据类型: double

输出图像数据的范围,指定为下列值之一:

说明
'full'使用输出类的完整范围(例如,对 uint8 使用 [0 255])。
'original'将范围限制为 [min(I(:)) max(I(:))]

数据类型: char | string

所需的直方图形状,指定为下列值之一:

说明
'uniform'创建平坦直方图。
'rayleigh'创建钟形直方图。
'exponential'创建曲线直方图。

'Distribution' 指定 adapthisteq 用作创建对比度变换函数的基础的分布。您选择的分布应取决于输入图像的类型。例如,当使用瑞利分布时,水下图像看起来更自然。

数据类型: char | string

分布参数,指定为非负实数标量。'Alpha' 仅在 'Distribution' 设置为 'rayleigh''exponential' 时使用。

数据类型: double

输出参数

全部折叠

输出强度图像,以与输入图像 I 的类相同的二维数组形式返回。

算法

CLAHE 对图像中称为图块的小区域进行运算,而不是对整个图像进行运算。adapthisteq 分别计算每个图块的对比度变换函数。每个图块的对比度都得到增强,因此输出区域的直方图与 'Distribution' 值指定的直方图大致匹配。然后使用双线性插值合并相邻图块,以消除人工形成的边界。可以限制对比度,尤其是在同构区域,以避免放大图像中可能存在的任何噪声。

参考

[1] Zuiderveld, Karel. “Contrast Limited Adaptive Histograph Equalization.” Graphic Gems IV. San Diego: Academic Press Professional, 1994. 474–485.

另请参阅

在 R2006a 之前推出