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


11

这与我在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
您可以在Wikipedia条目中找到很多有用的东西,但是我发现(en.wikipedia.org/wiki/HSL_and_HSV#Disadvantages)可能与您的问题有关,尤其是:“因为HSL和HSV纯粹是用关于某些RGB空间,它们不是绝对的颜色空间:要精确地指定颜色,不仅需要报告HSL或HSV值,还需要报告它们所基于的RGB空间的特征,包括使用中的伽马校正。”
horatio 2011年

因此,显而易见的想法是在尝试进行转换时指定gamma和RGB颜色空间(如果可能!)。
horatio 2011年

2
更好的主意是RGB→ L * a * b * →RGB;因为Lab旨在逼近人类视觉,因此亮度是其维度之一。
JariKeinänen2011年

@koiyu Lab是我建议也找到灰色搭配的方法。(您击败了我!当您发布此内容时,我正在模拟下面的答案。)
尼克,

我避免了关于色彩感知的有问题的讨论:)
horatio 2011年

Answers:


10

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

例如,当转换为时,(50,0,0)的Lab灰色将与Lab红色(50,30,0),(50,50,30)和(50,50,50)非常相似灰度。以下示例使用Photoshop(“图像”>“模式”>“灰度”)从Lab转换为灰度: 原始实验室颜色
转换为灰度


看起来像我想要的东西!谢谢。但是,我不能直接在工具集中使用Lab,因此我需要某种转换算法。Koiyu建议将RGB-> Lab-> RGB转换,我将尝试实现它。
Christoph

1
我发现了以下内容:http : //www.brucelindbloom.com/index.html?Equations.html。我不知道转换是否正确,我的印象是仍然需要一些魔术。
克里斯多夫

这些转换函数看起来可能很有用。
尼克,

他们的确确实看起来更直截了当……
Christoph

@Nick我可以用计算器进行所有计算,这很好。但是,我必须在LaTeX文档中实现颜色模型转换,这使我无所适从。完成后,我将发布结果并接受您的回答。
Christoph

4

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

为此,必须有一个数学运算,但是您可以在屏幕上按眼睛进行运算。

如果创建所需的所有颜色,然后将其透明模式设置为“颜色”(或饱和度或色相)的灰色元素(插图画家)或图层(photoshop)放置,则将使下面的所有元素都能显示其亮度。

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

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

您可以向不同的人显示相同的颜色,而他们不会找到与其他人相同的“均匀度”。

加上以下事实:您在所选设备中将这些颜色设置为“相同的发光度”,并且不仅将它们全部“估计”,而且在其他设备中显示后,效果也会失败,因为每个设备有其自身的能力以不同的强度点亮红色绿色或蓝色元素,因此您可能会得到例如红色的元素。

另外,如果您按照上述建议从灰色到颜色进行混合,则必须确保灰色元素在每个通道中至少具有至少1/255的最小值(即不再是灰色),否则软件会将原始灰色视为0色相,将使您呈现红色的中间色调(因为0色相与任何其他颜色的混合将变成红色的一半)

自90年代以来,我一直是印前专家,我的建议是:如果要进行数学运算,则应将数学运算用于眼睛(视觉功能)以及要显示的设备的视觉效果这些数字。

祝好运。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.