理解色调的颜色矩阵

时间:2013-12-27 15:29:07

标签: math graphics matrix colors colormatrix

这是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?

1 个答案:

答案 0 :(得分:2)

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

我无法识别出abc。它们可能与色度(饱和度)相关。

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

您可能会发现Gamma FAQ很有用,因为它描述了很多这些概念。 this page描述围绕任意轴旋转的数学运算。

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