adapthisteq
对比限制自适应直方图均衡化(CLAHE)
描述
例子
应用对比限制自适应直方图均衡化(CLAHE)
将CLAHE应用于图像并显示结果。
I = imread(“tire.tif”);J = adapthisteq(I,“clipLimit”, 0.02,“分布”,“瑞利”);imshowpair (I, J,“蒙太奇”);标题(“原始图像(左)和增强图像(右)”)
应用CLAHE索引彩色图像
将已索引的彩色图像读入工作区。
[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,“蒙太奇”)标题(“原图(左)和增强图(右)”)
增强图像中的阴影看起来更暗,高光看起来更亮。整体对比度提高。
输入参数
我
- - - - - -灰度图像
二维数值矩阵
灰度图像,指定为二维数字矩阵。
数据类型:单
|双
|int16
|uint8
|uint16
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:8“NumTiles”,[16]
将图像划分为8行和16列的瓷砖。
NumTiles
- - - - - -方块数
(8)
(默认)|正整数的2元向量
矩形上下文区域(瓦片)的数目adapthisteq
分割图像,指定为2元素的正整数向量。用原图像分割成米
行和N
列的瓦片,值NumTiles
是(mn)
.这两个米
而且N
至少是2
.方块的总数等于M * N
.瓷砖的最佳数量取决于输入图像的类型,最好通过实验来确定。
数据类型:双
ClipLimit
- - - - - -对比度增强极限
0.01
(默认)|在[0,1]范围内的数字
对比度增强限制,指定为范围[0,1]中的数字。更高的限制导致更多的对比。
ClipLimit
是一种对比度因子,防止图像过饱和,特别是在均匀区域。由于许多像素落在相同的灰度范围内,这些区域的特征是在特定图像瓦的直方图中有一个高峰。如果没有剪辑限制,自适应直方图均衡化技术可能会产生在某些情况下比原始图像更差的结果。
数据类型:双
NBins
- - - - - -用于构建对比度增强转换的直方图箱的数量
256
(默认)|正整数
用于构建对比度增强转换的直方图箱数,指定为正整数。数值越高,动态范围越大,代价是处理速度越慢。
数据类型:双
范围
- - - - - -输出数据范围
“全部”
(默认)|“原始”
输出图像数据的范围,指定为这些值之一。
价值 | 描述 |
---|---|
“全部” |
使用输出类的完整范围(例如[0 255])uint8 ). |
“原始” |
将范围限制为我(:)[min()马克斯(我(:))) . |
数据类型:字符
|字符串
分布
- - - - - -期望的直方图形状
“统一”
(默认)|“瑞利”
|“指数”
所需的直方图形状,指定为以下值之一:
价值 | 描述 |
---|---|
“统一” |
创建一个平面直方图。 |
“瑞利” |
创建一个钟形直方图。 |
“指数” |
创建一个弯曲的直方图。 |
分布
指定用于adapthisteq
用作创建对比变换函数的基础。选择的分布应该取决于输入图像的类型。例如,当使用瑞利分布时,水下图像看起来更自然。
数据类型:字符
|字符串
α
- - - - - -分布参数
0.4
(默认)|负的数量
分布参数,指定为非负数。α
仅用于以下情况分布
设置为“瑞利”
或“指数”
.
数据类型:双
算法
CLAHE操作图像中的小区域,称为瓷砖,而不是整个图像。adapthisteq
为每个贴图单独计算对比度变换函数。属性所指定的直方图大致匹配输出区域的直方图,从而增强了每个瓦的对比度分布
价值。然后使用双线性插值将相邻的瓦片组合起来以消除人为诱导的边界。对比度,特别是在同质区域,可以被限制,以避免放大任何可能存在于图像中的噪声。
参考文献
Zuiderveld,卡雷尔。“对比有限自适应直方图均衡化。”图形宝石IV.圣地亚哥:专业学术出版社,1994年。474 - 485。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
adapthisteq
万博1manbetx支持生成C代码(需要MATLAB®编码器™).有关更多信息,请参见图像处理的代码生成.
GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。万博1manbetx有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
R2006a之前介绍R2022b:万博1manbetx支持基于线程的环境
adapthisteq
现在支持万博1manbetx基于线程的环境。
R2022a:生成CUDA代码使用GPU编码器
adapthisteq
现在支持万博1manbetx生成优化的CUDA®代码(需要GPU Coder™)。
R2021a:使用以下命令生成C代码MATLAB编码器
adapthisteq
现在支持万博1manbetx生成C代码(需要MATLAB编码器).
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。