色彩空间变换

March 20

光谱与色彩感知

一句话来讲, 色彩就是不同波形分布的光被人眼接收后产生的不同感知。 人眼有三种视锥细胞, 分别响应不同波长范围。 根据三种视锥细胞的刺激比例, 便能描述任一种颜色的感觉, 此称为LMS空间。

CIE-XYZ 与 CIE-RGB

由于 LMS 空间的数据难以测量, 1931年, WrightGuild 通过直接测量受试者对不同光谱的色彩感知获得了颜色匹配函数 (Color Matching Functions)。 颜色匹配函数获得的过程本质上是通过叠加 RGB 三种光谱光来匹配任意光谱的光。 即:

C=rR+gG+bBC = rR + gG + bB

其中 C 为任意光谱的光, RGB 为三种光谱, r g b 为色值。

但是通过这种方式获得的颜色匹配函数会存在负值, 为了解决这个问题, CIE 提出了 XYZ 空间。 XYZ 空间是通过对颜色匹配函数进行线性变换得到的, 使得所有的颜色匹配函数都是正值以方便计算。 变换矩阵如下:

[XYZ]=[0.41245640.35757610.18043750.21267290.71515220.07217500.01933390.11919200.9503041][RGB]\begin{bmatrix}X \\ Y \\ Z\end{bmatrix}=\begin{bmatrix}0.4124564 & 0.3575761 & 0.1804375 \\0.2126729 & 0.7151522 & 0.0721750 \\0.0193339 & 0.1191920 & 0.9503041\end{bmatrix}\begin{bmatrix}R \\ G \\ B\end{bmatrix}

RGB 空间

在计算机图形学领域, RGB 色彩模型最为便利, 一方面它与人类视觉系统的原理类似, 另一方面它与显示设备的工作方式相符。

任何基于 RGB 颜色模型的加色色彩空间都属于 RGB 空间。 RGB 由红绿蓝三原色的色度来定义, 借此可以定义出相应的色三角, 生成其他颜色。

一个完整的 RGB 空间定义还需要给出白点的色度以及 Gamma 校正曲线。 详细介绍可以查阅 维基百科

sRGB 空间

由于生产工艺差距, 相同的 RGB 值在不同设备上显示的颜色可能会有所不同。 这会使得相同的数字产品在不同显示设备上呈现出不同的颜色, 不利于数字产品的标准化生产和分发。

为了解决这个问题, 设备厂商们协商制定了一些标准色彩空间, 如 sRGBAdobe RGBDCI-P3 等。

其中 sRGB 是最为广泛使用的标准色彩空间, 它的全称是 standard RGB

sRGB 空间的白色值为 CIE-D65, 它的 XYZ 值为 [0.9505,1.0000,1.0890][0.9505, 1.0000, 1.0890]sRGB 空间的 Gamma 校正曲线是一个分段的非线性函数, 如下:

gamma(C)={12.92C,C0.00313081.055C1/2.40.055,C>0.0031308gamma(C) = \begin{cases}12.92C, & C \leq 0.0031308 \\1.055C^{1/2.4}-0.055, & C > 0.0031308\end{cases}

其他 RGB 空间

Color SpaceWhite PointGammaCoverage
Adobe RGBD652.252.1%
DCI-P3D652.645.5%
ProPhoto RGBD501.8100%

更完整的表格可以查阅 Color space eploying the RGB color model

参考

  1. 色彩空间表示与转换 https://zhuanlan.zhihu.com/p/24281841
  2. RGB 色彩空间 https://zh.wikipedia.org/wiki/RGB%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%96%93
  3. RGB color spaces https://en.wikipedia.org/wiki/RGB_color_spaces

© 2020 - 2025 Ruiyao Luo

25/12/10 11:30

PROD

#68e6fa8