是否可以从RGB表示中获得颜色的光频率?我找到了相反的过程[1],但我不知道这是否可能。
答案 0 :(得分:7)
AFAIK,没有直接的答案,因为多个波长可以结合起来给出相同的颜色吗?所以你有波长映射到纯色,然后它们的组合可以提供许多其他和相同的颜色。并且有几种组合可以提供相同的颜色。这是因为干涉。所以你基本上要求一对多的映射。
回答你的问题:没有固定的公式。反向公式将为您提供范围。这是最好的。
答案 1 :(得分:6)
也许Javascript - Sort rgb values可以帮到你。
但问题是波长谱看起来像
您可以将RGB转换为HSL,但HSL频谱看起来像
然后,由于波长光谱不具有所有颜色,例如粉红色,因此存在问题。
我猜这是因为粉红色在自然界中不存在,它是光谱相反极端的颜色的组合。但我们用RGB格式。
答案 2 :(得分:0)
答案 3 :(得分:0)
查看链接所引用的C程序,只有81个不同频率的color_match值 - 这些值似乎是链接中图3边缘周围的标记频率。因此,如果你知道你的RGB信息是针对一个频率的纯光,那么你可以计算每个值的RGB信息,看看它与哪个值最匹配 - 可能是在缩放一个或另一个之后使亮度匹配。 / p>
问题当然是你的RGB值可能来自不同频率的混合光。在这种情况下,你会得到一个来自图3内部的点 - 它不会接近外面的任何值(所以至少你可以告诉它有问题)并且会有是可能产生它的大量可能的频率组 - 这些对应于图表外部的加权平均值,这些点的平均值可以在内部产生你的点。