有人可以向我解释一下 Android 中的 'void postConcat' 是做什么的吗?

Can somebody explain to me what 'void postConcat' in Android does?

所以我有 2 个矩阵。

颜色矩阵和阈值。 颜色矩阵最初是,

C =  [  0.213 0.715 0.072 0 0;
        0.213 0.715 0.072 0 0;
        0.213 0.715 0.072 0 0;
           0    0     0   1 0;]

阈值为:

T = [   255 0 0 1 -306;
        0 255 0 1 -306;
        0 0 255 1 -306;
        0 0  0  1 -306;]

现在这行代码在android colorMatrix.postConcat(threshold); returns 这个:

C =  [  54.315 182.325 18.36 1 -306;
        54.315 182.325 18.36 1 -306;
        54.315 182.325 18.36 1 -306;
           0      0      0   1   0; ]

为什么?得出该结果的步骤是什么?

如果我在Matlab中做同样的事情,那就是C*T' 我明白了:

C =  [  54.315 182.325 18.36 0;
        54.315 182.325 18.36 0;
        54.315 182.325 18.36 0;
           0      0      0   0; ]

具有不同值的不同维度数组。有人可以向我解释 postConCat 的作用吗?我在网上找不到关于此功能的任何信息,只能在 Android 文档中找到,它只说明了这一点:

Concat this colormatrix with the specified postmatrix. 

。这只是一件 Android 的事吗?

Why? What are the steps that it follows to come to that result?

ColorMatrix 的源代码可以在这里查看:https://android.googlesource.com/platform/frameworks/base/+/master/graphics/java/android/graphics/ColorMatrix.java

Is it only an Android thing?

我相信它有点像 ColorMatrix 的东西。在 Android 中,我相信 ColorMatrix 只是作为一种构造特殊 ColorFilter (ColorMatrixColorFilter) 的方法提供的,它主要用于 Bitmap 对象。

来自ColorMatrix.postConcat描述:

This is logically the same as calling setConcat(postmatrix, this)

根据 setConcat 的描述:

Set this colormatrix to the concatenation of the two specified colormatrices, such that the resulting colormatrix has the same effect as applying matB and then applying matA.

因此,如果理解正确,我相信 ColorMatrix.postConcat 可用于将两个 ColorMatrix 对象合并为一个对象,这样您就可以将它应用到您选择的位图上一次,而不是应用两次。

简而言之,如果您想获得与在 Matlab 中获得的相同的行为,您可能需要自己实现。