1

我想使用 GPUImageColorMatrixFilter 实现一个带通滤波器。基本上,蓝色等于 floor(blue - (k*red)),红色和绿色最终都为零。我在哪里可以找到说明矩阵的列和行含义的文档?

4

1 回答 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 回答