0

给定 CIELAB 颜色(L* A* B* 值),如何降低色度(饱和度)?

色度可以计算如下:

C ab= sqrt(a ²+b*²)

假设输出为 72。如何转换变量ab强制色度为例如。43?

4

1 回答 1

1

简短的回答:要将极坐标反转回笛卡尔空间,您还需要使用 HUE 相关性。否则你将不知道向量的方向。

更完整的答案:

要将 a b转换为色调:

    hueab = 180 * atan2( a , b ) / pi();

然后将色调和色度转换回 L * a * b *,然后:

    a = Cab * cos((hueab * PI()) / 180);
    b = Cab * sin((hueab * PI()) / 180);

饱和

你提到饱和度。色度不饱和。

  • 饱和度是相对于该颜色自身亮度的颜色。
  • 色度是相对于单独的参考白色的色彩。

CIELAB 不做饱和度,但 CIELUV 和 CIECAM02 等其他颜色模型做。

CIELUV 的 L *与 LAB 相同。但 LUV 是基于 1976 年 UCS 色度图,它使用 uʹvʹ 坐标,是 1931 年色度图的简单投影。LUV 将 uʹvʹ 每个乘以 13L *,使它们成为 u * v *

您创建色调和色度的方式与 LAB 相同,但使用 LUV 您可以创建有用的饱和度相关性,这在 LAB 中是不可能的。

从色度u * v *创建饱和度:

    Suv = Cuv / Lstar;

微不足道,并且要使饱和度恢复到色度,显然:

    Cuv = Suv * Lstar;

其他型号

CIELAB 和 CIELUV 均于 1976 年问世(大约与第一次星球大战同时出现)。今天我们有更精确的模型,如 CIECAM02、CAM16、J z a z b z、ZCAM 等。我鼓励你看看其中的一些。

此外,您可能对这个CIELUV 实现感兴趣,HSLUV有一些好处,包括在选择颜色时指示色域限制。

https://www.hsluv.org

于 2021-10-01T10:45:35.597 回答