主要内容

lab2rgb

将 CIE 1976 L*a*b* 转换为 RGB

说明

rgb = lab2rgb(lab) 将 CIE 1976 L*a*b* 值转换为 sRGB 值。

示例

rgb = lab2rgb(lab,Name=Value) 使用一个或多个名称-值参量指定其他转换选项,例如 RGB 图像的颜色空间。

示例

示例

全部折叠

将 L*a*b* 颜色空间中的颜色值转换为标准 RGB 颜色空间。

lab2rgb([70 5 10])
ans = 1×3

    0.7359    0.6566    0.6010

将 L*a*b* 颜色空间中的颜色值转换为 Adobe RGB (1998) 颜色空间。

lab2rgb([70 5 10],'ColorSpace','adobe-rgb-1998')
ans = 1×3

    0.7086    0.6507    0.5978

将 L*a*b* 颜色值转换为标准 RGB,并指定 D50 白点。

lab2rgb([70 5 10],'WhitePoint','d50')
ans = 1×3

    0.7282    0.6573    0.6007

将 L*a*b* 颜色值转换为 8 位编码的 RGB 颜色值。

lab2rgb([70 5 10],'OutputType','uint8')
ans = 1×3 uint8 row vector

   188   167   153

输入参数

全部折叠

要转换的 L*a*b* 颜色值,指定为数值数组,采用下列格式之一。

  • c×3 颜色图。每行指定一个 L*a*b* 颜色值。

  • m×n×3 图像

  • m×n×3×p 图像堆叠

属性描述
L*图像的亮度。值在 [0, 100] 范围内,其中 0 指定黑色,100 指定白色。随着 L* 的增加,颜色变得更亮。
a*图像中红色或绿色色调的量。大的正 a* 值对应于红色/品红色。大的负 a* 值对应于绿色。虽然 a* 没有单一范围,但值通常在 [-100, 100] 或 [-128, 127) 范围内。
b*图像中黄色或蓝色色调的量。大的正 b* 值对应于黄色。大的负 b* 值对应于蓝色。虽然 b* 没有单一范围,但值通常在 [-100, 100] 或 [-128, 127) 范围内。

数据类型: single | double

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: rgb = lab2rgb([70 5 10],WhitePoint="d50") 将参考白点指定为 "d50"

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: rgb = lab2rgb([70 5 10],"WhitePoint","d50");

输出 RGB 值的颜色空间,指定为 "srgb""adobe-rgb-1998""prophoto-rgb""linear-rgb"。如果您指定 "linear-rgb",则 lab2rgb 返回线性化的 sRGB 值。

数据类型: string | char

参考白点,以 1×3 向量或表中列出的 CIE 标准光源之一形式指定。

白点
"a"

CIE 标准光源 A,[1.0985, 1.0000, 0.3558]。模拟典型的家用白炽灯,相关色温为 2856 K。

"c"CIE 标准光源 C,[0.9807, 1.0000, 1.1822]。模拟平均或北方日光,相关色温为 6774 K。CIE 已弃用此光源。
"e"等能量辐射体,[1.000, 1.000, 1.000]。用作理论参考。
"d50"CIE 标准光源 D50,[0.9642, 1.0000, 0.8251]。模拟日出或日落时的暖日光,相关色温为 5003 K。也称为地平线日光

"d55"

CIE 标准光源 D55,[0.9568, 1.0000, 0.9214]。模拟上午中间时刻或下午中间时刻的日光,相关色温为 5500 K。

"d65"CIE 标准光源 D65,[0.9504, 1.0000, 1.0888]。模拟正午日光,相关色温为 6504 K。
"icc"ICC 配置文件中使用的配置文件连接空间 (PCS) 光源。使用有符号 32 位定点数(具有 16 个小数位)的逼近 [0.9642, 1.000, 0.8249]。实际值:[31595,32768, 27030]/32768

数据类型: single | double | string | char

返回的 RGB 值的数据类型,指定为 "double""single""uint8""uint16"。如果您未指定 OutputType,则输出类型与输入相同。

数据类型: string | char

输出参量

全部折叠

转换后的 RGB 颜色值,以与输入形状相同的数值数组形式返回。输出数据类型与输入数据类型相同,除非您指定 OutputType 参数。

提示

  • 如果您将输出 RGB 颜色空间指定为 "linear-rgb",则输出值是线性化的 sRGB 值。相反,如果您需要输出颜色空间为线性化 Adobe RGB (1998),则您可以使用 rgb2lin 函数。

    例如,要将 CIE 1976 L*a*b* 图像 LAB 转换为线性化 Adobe RGB (1998) 颜色空间,请分两步执行转换:

    RGBadobe = lab2rgb(LAB,"ColorSpace","adobe-rgb-1998");
    RGBlinadobe = rgb2lin(RGBadobe,"ColorSpace","adobe-rgb-1998");
  • lab2rgb 可以返回超出 RGB 色域的颜色值。当转换后的 RGB 颜色的任何分量值小于 0 或大于 1 时,该颜色超出色域。有关详细信息,请参阅Determine If L*a*b* Value Is in RGB Gamut

扩展功能

全部展开

版本历史记录

在 R2014b 中推出

全部展开