了解色调的颜色矩阵



这是 ARGB 中的颜色矩阵:

[
R,0,0,0,0,
0,G,0,0,0,
0,0,B,0,0,
0,0,0,A,0,
0,0,0,0,1
]

我知道它的色调颜色矩阵如下:(参考 Gskinner 的源代码:http://gskinner.com/blog/archives/2007/12/colormatrix_cla.html)

define lr=0.213
define lg=0.715
define lb=0.072
define a=0.143
define b=0.140
define c=-0.283
define hueangle
define cos=cos(hueangle)
define sin=sin(hueangle)

[
lr+cos*(1-lr)+sin*(-lr),lg+cos*(-lg) +sin*(-lg),lb+cos(-lb) +sin*(1-lb),0,0,
lr+cos*(-lr)+ sin*(a),lg+cos*(1-lg)+sin*(b),lb+cos(-lb) +sin*(c),0,0,
lr+cos*(-lr)+ sin*(-(1-lr)),lg+cos*(-lg) +sin*(lg) ,lb+cos(1-lb)+sin*(lb),0,0,
0,0,0,1,0,
0,0,0,0,1
]

(感谢son_of_fire指出上一版中问题的莫名其妙之处。

问题

  • 是什么公式导致了这个色调矩阵,尤其是其中的数字 a、b 和 c?

lrlglb是亮度常数。如果你计算<RGB>与<lrlg的点积,lb>你会得到颜色的亮度。如果要在不更改颜色亮度的情况下更改色调和/或饱和度,这将非常有用。

我不认识abc从我的头顶上下来。它们可能与色度(饱和度)有关。

hueangle是要旋转颜色的角度。它绕R = G = B轴旋转。如果旋转 180°,红色变为青色,绿色变为品红色,黄色变为蓝色等。

您可能会发现 Gamma 常见问题解答很有用,因为它描述了许多这些概念。本页描述了绕任意轴旋转背后的数学原理。

此外,您通常需要一个 4x4 矩阵进行颜色转换,而不是 5x5。

相关内容

  • 没有找到相关文章

最新更新