如何将单个电位计值转换为R,G,B?

时间:2016-09-06 20:50:26

标签: python python-3.x math rgb led

我使用的电位计输出值0-255。我想要它做的是以一种包含256步的方式改变RGB LED的颜色,这将显示LED上的所有颜色,并且可以获得

问题: 如何将单个值(0-255)转换为可应用于LED的rgb代码?

最明显的解决方案是创建一个包含所有256个可能值的字典,并手动将RGB代码分配给这些值。我不想这样做,我试图找到更多数学解决方案。

1 个答案:

答案 0 :(得分:1)

使用其中一个matplotlib colormaps。我推荐jet色彩图,因为大多数人都熟悉蓝色表示小值的解释,红色表示大值。

from matplotlib import cm

pot_values = [0, 51, 102, 153, 204, 255]
rgb = []
for x in pot_values:
    val = cm.jet(float(x)/255)[:3]  # The 4th element is gamma
    rgb.append([round(x*255) for x in val])

print(rgb)

# Output:
# [[0.0, 0.0, 128.0],
#  [0.0, 76.0, 255.0],
#  [41.0, 255.0, 206.0],
#  [206.0, 255.0, 41.0],
#  [255.0, 104.0, 0.0],
#  [128.0, 0.0, 0.0]]