Skip to content
0

色彩理论

XYZ

自然界本来就没有颜色,自然界只有光,颜色是人们根据人眼可见光的波长来定义的。国际照明委员会CIE在1931年创立了一个标准系统,定义了三个假想的、不存在于现实世界的原色:(X, Y, Z),称为三刺激值(或三原色),它唯一地、客观地定义一个颜色在人眼中的感知效果。简单理解就是三刺激值唯一定义了一个颜色。CIE XYZ 色彩空间是由真实的 CIE RGB 色彩空间进行线性变换而来,因为 CIE RGB 会存在负值的情况,不方便计算。

  • X: 大致代表红原色,但包含了部分人眼可见的所有波长。
  • Y: 关键! 它不仅代表绿原色,更重要的是——Y的数值被定义为代表颜色的亮度。光亮度信息完全由Y值承载。
  • Z: 大致代表蓝原色。

光学仪器(比如光谱仪、分光计等)基本都能输出三刺激值,用于各种检测和校准。

xy

xy表示CIE 1931色度坐标。它们是从三刺激值 (X, Y, Z) 计算得来的归一化坐标,定义了颜色的“色调”和“饱和度”,但不包含亮度信息。

x=XX+Y+Zy=YX+Y+Z

由于xy色度坐标是根据三刺激值计算得到,所以其也是一种与设备无关的标准值。

  • 色度图展示了对一般人可见的所有色度。这个用颜色展示的区域叫做人类视觉的色域。在图上所有可见色度的色域是用颜色展示的马蹄铁形状。色域的曲线边界叫做“光谱轨迹”并对应于单色光,波长用纳米标记。色域底下的直线边界叫做“紫线”,这些颜色尽管在色域的边界上,但没有匹配的单色光。更少饱和的颜色位于图形内部而白色位于中央。
  • 所有可见色度对应于x、y和z的非负值。
  • 如果你在色度图上选择了任何两点,则位于这两点之间直线上任何颜色都可以用这两个颜色混合出来。这得出了色域的形状必定是凸形的。混合三个光源形成的所有颜色都可以在色度图内的源点形成的三角形内找到(对于多个光源也如是)。
  • 两个同等明亮颜色的等量混合一般不位于这个线段的中点。用更一般术语说,在xy色度图上距离不对应于两种颜色之间的差别程度。因此设计了其他色彩空间(如CIELuv和CIELab)来满足这个问题。
  • 白点,又称为E点,用于定义色域的白色。组成白点的各色能量频谱一致。D65的固定坐标为(0.3127, 0.3290)。

从上图中可以看出有很多的色域空间范围,那为什么要搞出这么多呢?不能直接搞一个最大的色域空间尽可能包含马蹄形吗?

一是受技术限制,没有一种设备可以输出马蹄形内的所有人眼可见的颜色;二是实际应用场景和硬件成本的平衡。

  • sRGB:最通用、最保守的色域。它的色域范围相对较小,但兼容性极高。几乎所有的网页、办公软件、消费级相机和显示器都默认使用sRGB。如果你不知道用什么,用sRGB准没错。
  • Adobe RGB:为专业摄影和印刷而生。它比sRGB包含了更丰富的绿色到青色的范围。这使得它在将数码照片转换为印刷品(CMYK)时,能保留更多的颜色细节,避免色彩断层。
  • DCI-P3:为电影工业而生。它比sRGB拥有更广的红色和绿色范围,能呈现更生动、更具视觉冲击力的色彩。你现在买的“广色域”手机、电视和显示器,很多都是以覆盖DCI-P3色域为卖点的。
  • ProPhoto RGB:为后期处理保留最大余地。这是一个非常大的色域,甚至包含了人眼都无法看到的一些颜色。专业摄影师在RAW格式后期处理时会使用它,目的是在编辑过程中保留最大的色彩信息,避免在后期流程中因色域太小而损失颜色。

不同的色域空间范围都有自己的应用场景,没有一个“万能”的色域能同时满足所有设备、所有应用场景的需求。

u'v'

u'v'表示 CIE 1976 UCS 均匀色度标尺图的坐标。由于 CIE 1931 xy色度图在视觉上不均匀(两种颜色在图上距离相同,但人眼感知的差异可能不同),u', v' 被提出以使色度图更均匀,颜色差异的计算更符合人眼感知。

首先从XYZ值计算出CIE 1960 UCS色度坐标u和v:

u=4XX+15Y+3Zv=6YX+15Y+3Z

CIE 1976 UCS对v坐标进行了改进,得到了u'和v':u=uv=1.5v。由此可以得出:

u=4XX+15Y+3Zv=9YX+15Y+3Z

色差计算:u'v'色度空间在视觉上更均匀。这意味着,计算两个颜色在u'v'空间中的欧几里得距离 Δu'v',能比在xy空间中计算的 Δxy 更好地反映人眼实际感知到的色差。

Δuv=(u1u2)2+(v1v2)2

Lab

CIE1976Lab颜色空间是色差仪最常用的一种颜色空间,是基于生理特征的均匀颜色空间,是由明度L和两个色度分量a、b共三个分量构成。

  • L表示颜色的明度,也常被称作亮度,取值范围在[0,100],表示从纯黑到纯白。
  • a表示从绿色到红色,-a最小表示绿色,+a最大表示红色,取值范围在[-128,127],-a到+a是绿色到红色颜色渐变的过程。
  • b表示从蓝色到黄色的范围,同样原理,-b到+b是由蓝色逐渐过渡到黄色的过程,取值范围在[-128,127]。

CIELab颜色空间是颜色量化最均匀的颜色分布,在样品色差评比系统中,很多公式都是依赖该颜色空间的,它是颜色差异的规范化空间,能够解决颜色量化的等距度量,其均匀性较好。该颜色空间两点之间的几何距离,与人眼观察物体的色差大小相同。CIELab主要用于印刷、染料、颜料及油墨等表面颜色工业部门。

计算 Lab 或 Luv 需要参考白点。参考白点是在特定光源(如D65, D50)照射下,一个完全漫反射体(理想白色)的三刺激值XnYnZn。常用的标准光源是:

  • D65:平均日光,色温约6504K,是sRGB等色彩空间的默认白点。CIE 1931坐标为(0.31271, 0.32902),三刺激值为Xn=95.0489, Yn=100, Zn=108.8840
  • D50:色温约5000K,常用于印刷行业。
L=116f(YYn)16a=500(f(XXn)f(YYn))b=200(f(YYn)f(ZZn))

其中,函数 f 的定义如下:

f(t)={t3,t>δ3t3δ2+429,tδ3

其中,δ=629

色差 ΔEab 是Lab空间中最常用的色差公式:

ΔEab=(ΔL)2+(Δa)2+(Δb)2

Luv

CIELuv颜色空间是CIE1976L*u*v*均匀颜色空间的简称,在CIELuv空间中,L*为明度,u*v*为色品指数。三者相互垂直构成色空间来描述相对应的亮度和色度量:垂直的轴是明度L*,位于水平面且互相垂直的是色品指数u*v*

CIE1976Luv系统中uv色度图仍保留了马蹄形的光谱轨迹,较适合于对光源色、彩色电视等工业部门做研究工具。

L={116YYn316,YYn>δ3(293)3YYn,YYnδ3

其中,δ=629

u=4XX+15Y+3Z,v=9YX+15Y+3Z

计算参考白点的 u'v'

un=4XnXn+15Yn+3Zn,vn=9YnXn+15Yn+3Zn

计算 u*v*

u=13L(uun)v=13L(vvn)

色差 ΔEuv 是Luv空间中的色差公式:

ΔEuv=(ΔL)2+(Δu)2+(Δv)2

XYZ转RGB

将XYZ转RGB主要是2个步骤:

  1. 计算出转换矩阵:需要RGB三原色xy坐标值以及白点坐标值。
  2. 伽马校正。

白平衡

白平衡就是让图像中的“白色”在任何光源下都看起来是真正的“白色”,并以此为基础,让所有其他颜色都得到准确还原。白平衡通过调整图像中红、绿、蓝三原色的相对强度来实现色彩校正。

参考文档

  1. 色彩空间基础-知乎
  2. 一篇文章搞清楚三原色、RGB、CMYK-知乎
  3. 揭秘色彩空间Lab Luv-简书
  4. CIELAB色彩空间 - 维基百科
  5. CIELUV色彩空间 - 维基百科