随机化固定亮度的颜色

时间:2013-08-27 13:51:59

标签: colors color-space lab-color-space

我想随机化一些颜色,都具有相同的亮度(但不同的颜色)。现在有一个很好的颜色空间,如LAB允许你这样做,但转换回RGB时有点棘手,因为你可以在LAB空间中选择的所有颜色都不能正常表示RGB

我决定采用以下方法(糟糕的伪代码,更不用考虑范围和精确值):

L = some fixed value
while r, g or b not in range 0.0 to 1.0:
    a = random value
    b = random value
    r, g, b = LABtoRGB(L, a, b)

现在这对于L=50只需要1或2次迭代(因为RGB可以代表该亮度的很大一部分颜色),但我不喜欢这种解决方案。

当然有更好的方法吗?干杯!

1 个答案:

答案 0 :(得分:0)

最简单但不是最准确的做法是随机选择R, G & Bsqrt(R^2+G^2+B^2) == L(可能是通过平均值为{{1}的正态分布绘制R }和L*sqrt(3)/3来自平均值为G的分布((L^2-R^2) / 2现在为B