主要内容

adapthisteq

对比限制自适应直方图均衡化(CLAHE)

描述

例子

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

J= adapthisteq (名称,值使用名称-值参数来控制对比度增强的各个方面。

例子

全部折叠

将CLAHE应用于图像并显示结果。

I = imread(“tire.tif”);J = adapthisteq(I,“clipLimit”, 0.02,“分布”“瑞利”);imshowpair (I, J,“蒙太奇”);标题(“原始图像(左)和增强图像(右)”

图中包含一个轴对象。标题为Original Image(左)和对比度增强Image(右)的坐标轴对象包含一个Image类型的对象。

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

[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],“ClipLimit”, 0.005);Lab (:,:,1) = l *100;

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

J = lab2rgb(LAB);

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

图imshowpair (RGB, J,“蒙太奇”)标题(“原图(左)和增强图(右)”

图中包含一个轴对象。标题为Original(左)和对比度增强(右)Image的坐标轴对象包含一个Image类型的对象。

增强图像中的阴影看起来更暗,高光看起来更亮。整体对比度提高。

输入参数

全部折叠

灰度图像,指定为二维数字矩阵。

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

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:8“NumTiles”,[16]将图像划分为8行和16列的瓷砖。

矩形上下文区域(瓦片)的数目adapthisteq分割图像,指定为2元素的正整数向量。用原图像分割成行和N列的瓦片,值NumTiles(mn).这两个而且N至少是2.方块的总数等于M * N.瓷砖的最佳数量取决于输入图像的类型,最好通过实验来确定。

数据类型:

对比度增强限制,指定为范围[0,1]中的数字。更高的限制导致更多的对比。

ClipLimit是一种对比度因子,防止图像过饱和,特别是在均匀区域。由于许多像素落在相同的灰度范围内,这些区域的特征是在特定图像瓦的直方图中有一个高峰。如果没有剪辑限制,自适应直方图均衡化技术可能会产生在某些情况下比原始图像更差的结果。

数据类型:

用于构建对比度增强转换的直方图箱数,指定为正整数。数值越高,动态范围越大,代价是处理速度越慢。

数据类型:

输出图像数据的范围,指定为这些值之一。

价值 描述
“全部” 使用输出类的完整范围(例如[0 255])uint8).
“原始” 将范围限制为我(:)[min()马克斯(我(:)))

数据类型:字符|字符串

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

价值 描述
“统一” 创建一个平面直方图。
“瑞利” 创建一个钟形直方图。
“指数” 创建一个弯曲的直方图。

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

数据类型:字符|字符串

分布参数,指定为非负数。α仅用于以下情况分布设置为“瑞利”“指数”

数据类型:

输出参数

全部折叠

对比度增强图像,作为与输入图像具有相同数据类型的2-D矩阵返回

算法

CLAHE操作图像中的小区域,称为瓷砖,而不是整个图像。adapthisteq为每个贴图单独计算对比度变换函数。属性所指定的直方图大致匹配输出区域的直方图,从而增强了每个瓦的对比度分布价值。然后使用双线性插值将相邻的瓦片组合起来以消除人为诱导的边界。对比度,特别是在同质区域,可以被限制,以避免放大任何可能存在于图像中的噪声。

参考文献

Zuiderveld,卡雷尔。“对比有限自适应直方图均衡化。”图形宝石IV.圣地亚哥:专业学术出版社,1994年。474 - 485。

扩展功能

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

版本历史

R2006a之前介绍

全部展开