我想使用GPUImageColorMatrixFilter实现带通滤波器。基本上,蓝色等于地板(蓝色 - (k *红色)),红色和绿色都会最终为零。我在哪里可以找到指示矩阵的列和行的含义的文档?
答案 0 :(得分:4)
我的直觉表明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'|