CIELAB色彩空间

<image>

CIELAB色彩空间（英语：CIELAB color space）又写为L*a*b*，是国际照明委员会（缩写为CIE）在1976年定义的色彩空间。它将颜色用三个值表达示：“L*”代表感知的亮度、“a*”和“b*”代表人类视觉的四种独特颜色：红色、绿色、蓝色和黄色。CIELAB旨在作为一个感知上统一的空间，其中给定的数字变化对应于相似的感知颜色变化；虽然并不是真正的感知均匀，但在工业上仍可用于检测颜色的细微差异。

CIELAB色彩空间与Hunter Lab都源自CIE XYZ色彩空间，为了有效区别，应避免将CIELAB写为不带星号的“Lab”。

## 概述

CIE L*a*b*（CIELAB）是惯常用来描述人眼可见的所有颜色的最完备的色彩模型。它是为这个特殊目的而由国际照明委员会（Commission Internationale d'Eclairage的首字母是CIE）提出的。L、a和b后面的星号（*）是全名的一部分，因为它们表示L*, a* 和b*，不同于L, a和b。因为红／绿和黄／蓝对立通道被计算为（假定的）锥状细胞响应的类似孟塞尔值的变换的差异，CIELAB是Adams色彩值（Chromatic Value）空间。

三个基本坐标表示颜色的亮度（L*, L* = 0生成黑色而L* = 100指示白色），它在红色／品红色和绿色之间的位置（a*负值指示绿色而正值指示品红）和它在黄色和蓝色之间的位置（b*负值指示蓝色而正值指示黄色）。

已经建立的L*a*b* 色彩模型来充当用做参照的设备无关的模型。要认识到永远不能精确的在视觉上表示这个模型中颜色的完全色域是至关重要的。它们只是用来帮助理解概念而天生就不精确的。

因为L*a*b* 模型是三维模型，它只能在三维空间中完全表现出来。

“L*a*b*”模型也被表达为“L*C*h(a*, b*)”，它把a* 和b* 变换为辐射表示。

### 测量差别

CIE 1976 L*a*b* 直接基于CIE 1931 XYZ色彩空间衍生出来，它尝试使用MacAdam椭圆所描述的颜色差异度量建立线性化的颜色差异感知。L*, a* 和b* 的非线性关系模仿人类眼睛的非线性响应。色彩信息参照这个系统里带有下标n的白点的颜色。

在L*a*b* 模型中均匀改变对应在感知颜色中的均匀改变。所以在L*a*b* 中任何两个颜色的相对感知差别，可以透过把每个颜色看成（有三个分量：L*, a*, b* 的）三维空间中一个点，并计算在它们之间的欧几里得距离。在L*a*b* 空间中的这个欧几里得距离是ΔE（经常被称为“Delta E”，更精确的是ΔE*ab）。

使用L*a*b* 中的两个颜色$({L_1}^*,\ {a_1}^*,\ {b_1}^*)$和$({L_2}^*,\ {a_2}^*,\ {b_2}^*)$:

$$\Delta {E^*}_{ab} = \sqrt{ ({L_2}^*-{L_1}^*)^2+({a_2}^*-{a_1}^*)^2 + ({b_2}^*-{b_1}^*)^2 }\,$$

一个有关的色彩空间，CIELUV色彩空间，遵从和L*a*b* 同样的原理但有不同的u* 和v* 分量表示（保持相同的L*）。

### RGB和CMYK转换

在RGB或CMYK值与L*a*b* 之间没有转换的简单公式，因为RGB和CMYK色彩空间是设备依赖的。RGB或CMYK值首先必须被变换到特定绝对色彩空间中，比如sRGB或Adobe RGB。这种调整将是设备依赖的，但是变换的结果数据是设备无关的，允许把数据变换成CIE 1931色彩空间并接着变换成L*a*b*。

### XYZ与CIE L*a*b*(CIELAB)的转换

#### 正向变换

$$L^* = 116\,f(Y/Y_n) - 16$$

$$a^* = 500\,[f(X/X_n) - f(Y/Y_n)]$$

$$b^* = 200\,[f(Y/Y_n) - f(Z/Z_n)]$$

其中。

$$\begin{align} <pre> f(t) &= \begin{cases} {t^{1/3}} & \text{,if }\quad t > (6/29)^3 \\ \frac{1}{3} \left(\frac{29}{6} \right)^2 t + \frac{16}{116} & \text{,otherwise} \end{cases} \\ </pre> \end{align}$$

这里的$X_n \,$、$Y_n \,$、$Z_n \,$是参照白点的CIE XYZ三色刺激值。（下标n暗示了“normalized”）。

$f(t) \,$函数被分成两个定义域是为了防止在$t=0 \,$处的无限斜率。在某个$t=t_0 \,$之下$f(t) \,$被假定是线性的，并被假定匹配函数的$t^{1/3} \,$部分在$t_0 \,$的值和斜率。换句话说：

$t_0^{1/3}\,$｜$=\,$｜$a t_0 + b\,$｜（匹配值）

$1/(3t_0^{2/3})\,$｜$=\,$｜$a\,$｜（匹配斜率）

$b$的值被选择为16/116。上面两个方程对$a$和$t_0$有解：

$a\,$｜$=\,$｜$1/(3\delta^2)\,$｜$= 7.787037\cdots$

$t_0\,$｜$=\,$｜$\delta^3\,$｜$= 0.008856\cdots$

这里的$\delta=6/29 \,$。注意$16/116=2\delta/3 \,$。

#### 反向变换

反向变换如下($\delta=6/29 \,$如上):

- 定义$f_y\ \stackrel{\mathrm{def}}{=}\ (L^*+16)/116$
- 定义$f_x\ \stackrel{\mathrm{def}}{=}\ f_y+a^*/500$
- 定义$f_z\ \stackrel{\mathrm{def}}{=}\ f_y-b^*/200$
- 如果$f_y > \delta\,$则$Y=Y_nf_y^3\,$ 否则$Y=(f_y-16/116)3\delta^2Y_n\,$
- 如果$f_x > \delta\,$则$X=X_nf_x^3\,$ 否则 $X=(f_x-16/116)3\delta^2X_n\,$
- 如果$f_z > \delta\,$则$Z=Z_nf_z^3\,$ 否则 $Z=(f_z-16/116)3\delta^2Z_n\,$

## 用途

在软件和文献中存在对这个缩写的明确使用。

- 在Adobe Photoshop中，图象编辑使用的“Lab模式”是CIELAB D50。
- 在ICC Profile中，用做配置文件连接空间的“Lab色彩空间”是CIELAB D50。
- 在TIFF文件中，可以使用CIELAB色彩空间。
- 在PDF文档中，“Lab色彩空间”是CIELAB。

## Hunter Lab

由理查·亨特于1948年定义的Hunter Lab色彩空间是另一种名称有“ Lab”的色彩空间。与CIELAB一样，它也可以通过CIEXYZ空间中的简单公式进行计算，但在感知上比CIEXYZ更为一致。亨特将他的色彩坐标命名为L、a和b。CIE将CIELAB的坐标命名为L*a*b*，以便于区别Hunter的坐标。

### 与CIELAB色彩空间的比较

两个空间都得出自“主”空间CIE 1931 XYZ色彩空间，它可以预测哪些光谱功率分布会被感知为相同的颜色，但是它不是显著感知均匀的。两个“Lab”色彩空间都受到了孟塞尔颜色系统的强烈影响，意图都是建立可以用简单公式从XYZ计算出来，但比XYZ在感知上更线性的色彩空间。感知上线性意味着在色彩空间上相同数量的变化应当产生大约相同视觉重要性的变化。在用有限精度值来存储颜色的时候，这可以增进色调的再生。两个Lab空间都相对于它们从而转换的XYZ数据的白点。Lab值不定义绝对色彩，除非还规定了这个白点。实际上白点经常被假定服从某个标准而不明确规定（比如ICC L*a*b* 值是相对于CIE标准光源D50）。

CIELAB使用立方根计算，而Hunter Lab使用平方根计算。除非数据必须与现存的Hunter L,a,b值相比较，对新应用推荐使用CIELAB。

## 外部链接

- Demonstrative color conversion applet
- CIE Color Calculator