如何计算与给定灰度值具有相同感知亮度的其他颜色?

平面设计 颜色 颜色理论 颜色空间
2022-01-20 22:47:59

这与我在 tex.stackexchange 上提出的一个问题有关,该问题具有颜色方面。该问题的结果如下图:
值和饱和度对比

我在左边画了一系列灰色方块,右边有一个红色分支。目标是使不同的红色方块具有不同的饱和度,但都具有相同的灰度值。在 hsv 颜色模型中,它们都具有相同的v,但是当我使用 Gimp 将图像转换为灰度时,它们不会转换为相同的灰度。视觉印象也是右边的红色方块比左边的更暗。

给定某种灰色,我如何计算具有某种色调和相同灰度值的颜色(或者,甚至更好,具有相同的灰度印象)?图像中使用的颜色都是经过计算的,所以我更喜欢包含计算的解决方案。

我可能在这里使用了错误的术语 - 我是一名机械工程师,所以请在适当的地方纠正我,或要求澄清。


使用 Lab 颜色空间的建议让我得出了一些结论:

  • 我可以使用 Lab 模型的L值来为不同的颜色设置某种灰度值。在 hsv 模型中,这是v. 我不确定我是否真的可以比较这些,但我会这样做,直到有人抱怨。

  • 在 hsv 模型中,我还可以设置一些在 Lab 模型中找不到的“基色”(色调)。

  • 在 hsv 模型中,我有 2 个常量(在上图中:h= 0,v= 0.375)和一个变量(s)。

  • 到目前为止,我在 Lab 模型中只有一个常数。这不足以生成类似于我已经用 hsv 模型制作的东西。

我想是时候进行实验了。


完毕!在我运行转换代码后,这很容易。第一步是在右侧定义“目标红色”。我计算了RGB2Lab(255,0,0),把结果的L值改成了图中想要的L(L=62.5)。颜色是使用 Lab 空间中从 (L,0,0) 到 (L,aTarget,bTarget) 的线性插值计算的。结果:

在此处输入图像描述

谢谢!

2个回答

您可以使用Lab 颜色空间来查找匹配项。与目标灰度具有相同 L 值的颜色在转换为灰度时看起来几乎相同。

例如,(50, 0, 0) 的 Lab 灰色,在转换为灰度。下面的示例使用 Photoshop(图像 > 模式 > 灰度)将 Lab 转换为灰色: 原始实验室颜色
转换为灰度

因此,尼克的上述建议仅适用于 50% 的亮度。如果将任何其他相同的 L 值应用于不同的颜色,则灰度结果是不同的。

必须有一个数学,但你可以在屏幕上通过眼睛来做。

如果你创建了所有你想要的颜色,然后放置一个灰色元素(插图画家)或图层(photoshop),并将其透明度模式设置为“颜色”(或饱和度或色调),这将使下面的所有元素显示其亮度。

您应该确保该灰色元素下方的所有颜色的饱和度为 100,否则您将得到灰色的结果,而不是漂亮的颜色。

现在,问题是:通过上述所有方法,您将使所有元素“在使用的 RGB 配置文件中具有相同的亮度”,即所选“设备”的相同灰色,最糟糕的部分:眼睛是一个设备,并且存在差异。

您可以向不同的人展示相同的颜色,他们不会发现与其他人相同的“均匀度”。

再加上您在所选设备中将这些颜色设置为“相同的亮度”,不仅它们都是“估计的”,一旦您在不同的设备中显示它,效果就会失败,因为每个设备有自己的能力来点亮具有不同强度的红色绿色或蓝色元素,所以你可能会得到,例如红色元素。

此外,如果您按照上述建议从灰色混合到颜色,则必须确保灰色元素在每个通道中至少有 1/255(即不再是灰色),否则软件会将原始灰色视为0-hue,这会给你带来红色的中间色调(因为 0 色调和任何其他颜色之间的混合将是红色的一半)

自 90 年代以来,我就是一名印前专家,我的建议是:如果你打算使用数学,你应该使用眼睛的数学(视觉能力)以及你将要展示的设备的数学那些数字。

祝你好运。