Math 理解色调的颜色矩阵

Math 理解色调的颜色矩阵,math,graphics,matrix,colors,colormatrix,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的源代码: ) (感谢火之子在上一版中指出了问题的复杂性。) 问题 是什么公式导致了这个色调矩阵,特别是其中的数字a、b和c lr、lg和lb是亮度常数。如果你用计算的点积,你会得到颜色的亮度。如果要在不更改颜色亮度的情况下更改色调和/或饱和度,此选项非常有用 我不认识头顶上的a、b和

这是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的源代码: )



(感谢火之子在上一版中指出了问题的复杂性。)

问题

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

  • lr
    lg
    lb
    是亮度常数。如果你用计算的点积,你会得到颜色的亮度。如果要在不更改颜色亮度的情况下更改色调和/或饱和度,此选项非常有用

    我不认识头顶上的
    a
    b
    c
    。它们可能与色度(饱和度)有关

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

    您可能会发现它很有用,因为它描述了很多这些概念。描述了绕任意轴旋转的数学原理


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

    您所说的是哪些数字?有很多信息,你不够明确。矩阵中的所有数字,特别是a,b和c。。。A、B和C是什么?您使用的原始矩阵是什么?谢谢您的帮助。我会根据你的提示找出导致数字a、b和c的原因。
    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
    
    ]