主要内容

adapthisteq

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

描述

例子

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

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

例子

全部折叠

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

I=imread(“轮胎,tif”);J = adapthisteq(我“clipLimit”,0.02,“分配”,“瑞利”); imshowpair(I,J,“蒙太奇”);标题(“原图(左)及对比度增强图(右)”)

图中包含axes对象。标题为原始图像(左)和对比度增强图像(右)的axes对象包含Image类型的对象。

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

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

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

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

将值缩放到adapthisteq函数[0 1]。

L =实验室(::1)/ 100;

在L通道上执行clhe。将结果缩放到L*a*b*颜色空间所使用的范围。

L = adapthisteq (L,“NumTiles”,[8 8],“克里普利米特”实验室(:,:,1)=L*100;

将结果图像转换回RGB颜色空间。

J=lab2rgb(LAB);

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

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

图中包含Axis对象。标题为“原始”(左)和“对比度增强”(右)图像的Axis对象包含图像类型的对象。

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

输入参数

全部折叠

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

数据类型:单一的|双重的|int16|uint8|uint16

名称值参数

指定可选的逗号分隔的字符对名称、值参数。名字是参数名和价值为对应值。名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“NumTiles”[8 16]将图像分为8行16列的平铺。

插入的矩形上下文区域(平铺)的数量adapthisteq将图像分割,指定为正整数的2元素向量。将原始图像分割为M行列N瓦片列的值“NumTiles”[M N]. 两者MN至少2.瓷砖的总数等于M*N. 瓷砖的最佳数量取决于输入图像的类型,最好通过实验确定。

数据类型:双重的

对比度增强限制,指定为[0,1]范围内的一个数字。上限越高,对比度越大。

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

数据类型:双重的

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

数据类型:双重的

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

价值 描述
“全部” 使用输出类的完整范围(例如[0 255]用于uint8).
“原始” 将范围限制为[最小(I(:))最大(I(:)]

数据类型:字符|一串

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

价值 描述
“制服” 创建一个平面直方图。
“瑞利” 创建钟形直方图。
“指数型” 创建一个曲线直方图。

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

数据类型:字符|一串

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

数据类型:双重的

输出参数

全部折叠

对比度增强图像,作为与输入图像相同数据类型的二维矩阵返回

算法

CLAHE作用于图像中的小区域,称为瓷砖,而不是整个图像。adapthisteq分别计算每个平铺的对比度变换函数。每个磁贴的对比度都得到增强,因此输出区域的直方图与'分布'价值观。然后使用双线性插值组合相邻的瓷砖,以消除人为诱导的边界。可以限制对比度,特别是在均匀区域,以避免放大图像中可能存在的任何噪声。

参考文献

[1] Zuiderveld,卡雷尔。对比受限自适应直方图均衡化。图形宝石四.圣地亚哥:学术出版社,1994。474 - 485。

扩展能力

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

之前介绍过的R2006a