将RGBW像素数据映射到RGB进行可视化的有效方法是什么

时间:2018-08-10 11:37:40

标签: colors rgb led

我正在开发软件来控制带有红色,绿色,蓝色和白色通道(RGBW)的四个通道LED。白色通道独立于RGB进行控制,因此最终可能会得到(255,255,255,0)或(0,0,0,255)之类的值。

在我的应用中,有一个可视化的LED外观,可以在传统的RGB屏幕上显示。

颜色准确性比确保事物保持合理性重要。到目前为止,我一直在映射(r,g,b,w) -> (3r+w, 3g+w, 3b+w)/4。但是,这会使纯白色(0,0,0,255)的值变成深灰色(63, 63, 63),这会使用户感到困惑。

有什么方法可以将RGBW颜色映射到RGB进行显示? (对方程式或算法感兴趣,而不是特定的实现。)

1 个答案:

答案 0 :(得分:1)

这是我一直追求的解决方案。在某些特殊情况下,提供直观的东西比颜色准确性更重要,但对于一些更通用的解决方案,我仍然很感兴趣。

它基于以下观察结果:

  • 将白色引入颜色的感觉是非线性的-在没有白色的情况下添加少量的颜色比在白色通道中已经存在的情况添加少量的颜色更引人注目。
  • 60%的白色足以说明LED显示(0,0,0,255)

鉴于rgbw[0, 1]范围内浮动,请定义

w2 = (1.0 - (1.0 - w) * (1.0 - w))
alpha = 0.6 * w2
beta = 1 - a

然后将其用于RGB颜色:

[
  alpha * r + beta,
  alpha * g + beta,
  alpha * b + beta
]