Math 理解色调的颜色矩阵
这是ARGB中的颜色矩阵: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和
[
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
]