我想使用 GPUImageColorMatrixFilter 实现一个带通滤波器。基本上,蓝色等于 floor(blue - (k*red)),红色和绿色最终都为零。我在哪里可以找到说明矩阵的列和行含义的文档?
问问题
586 次
1 回答
5
我的直觉表明 4x4 矩阵遵循标准 RGBA 顺序,并通过示例判断(参见示例GPUImageSepiaFilter
)看起来我是对的。
例如,这是身份GPUMatrix4x4
R G B A
| 1 0 0 0 | red
| 0 1 0 0 | green
| 0 0 1 0 | blue
| 0 0 0 1 | alpha
让我们为每个系数命名
R G B A
| a b c d | red
| e f g h | green
| i j k l | blue
| m n o p | alpha
将矩阵应用于 RGBA 颜色将产生以下 R'G'B'A' 颜色,其中分量计算为
R' = a*R + b*G + c*B + d*A
G' = e*R + f*G + g*B + h*A
B' = i*R + j*G + k*B + l*A
A' = m*R + n*G + o*B + p*A
这不过是以下矩阵乘法
| a b c d | |R| |R'|
| e f g h | x |G| = |G'|
| i j k l | |B| |B'|
| m n o p | |A| |A'|
于 2013-11-13T01:40:29.713 回答