Python: 0 到 1 之间的值转换为红色到蓝色范围

2024-10-01 11:19:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这和我发布的previous question非常相似,我不知道如何修改它来适应这个问题。在

我有一个介于0和1之间的值数组。我想把这些值转换成从红色(0)到蓝色(1)的RGB颜色数组。上一个问题中建议的解决方案首先将值转换为HSV元组,然后使用colosys.hsv_to_rgb()来转换为RGB值。在

如果我想生成红色和绿色之间的颜色,这很好。我可以线性插值色调值。然而,当极端颜色是红色和蓝色时,中间值呈现绿色,因为绿色色调介于红色和蓝色之间。有没有办法可以避免这种情况,只在红色和蓝色附近得到颜色?在

我知道我可以直接线性插值RGB值,但这并不能提供一个好的光谱。所以请告诉我一个使用HSV空间的解决方案。在


Tags: 颜色rgb数组解决方案色调hsv建议蓝色
2条回答

将0-1输入缩放为0-(-120)输出,将模数乘以360,并将其用作色调(或0-(-0.3333…)和1.0(视情况而定)。在

色调是一个循环值,因此,如果将总色调范围添加到任何颜色的色调(将其最大值模化,使其仍在范围内),则可以得到完全相同的颜色。所以,与其从红色增加到蓝色,不如从红色减少到蓝色。HSV是一个圆柱形的颜色模型。在

enter image description here

相关问题 更多 >