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

标签 python colors interpolation

我知道这与 previous question 非常相似我已经发布了,我无法弄清楚如何修改它以适应这个问题。

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

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

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

最佳答案

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

关于Python:将0到1之间的值转换为红色到蓝色的颜色范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12432383/

相关文章:

python - 将异步协程作为 celery 任务运行

r - 在r中的网格图中绘制色标

arrays - perl6 插入数组以匹配 AND、OR、NOT 函数

python - 如何创建 Spark udf 将 float 插值到 INT 以及如何编写比我所做的更好的逻辑

python - Numpy:索引 i < j 的一维数组的总和

python - 绘图破折号,带有 2 个按钮输入和一个下拉输入的回调

python - Cython 中的继承和 std::shared_ptr

image - 使用ffmpeg提取帧时,jpeg颜色比png更差?

java - 根据图像修改背景颜色(主题)

C# 在图片框中移动位图