所以我有 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;]
现在安卓中的这行代码colorMatrix.postConcat(threshold);
返回以下内容:
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.
.它只是一个安卓的东西吗?
为什么?得出该结果的步骤是什么?
ColorMatrix的源代码可以在这里查看:https://android.googlesource.com/platform/frameworks/base/+/master/graphics/java/android/graphics/ColorMatrix.java
它只是一个安卓的东西吗?
我相信它有点,更像只是一个ColorMatrix的东西。在Android中,我相信ColorMatrix只是作为一种构造特殊ColorFilter
(ColorMatrixColorFilter
)的方式提供的,该主要用于应用于Bitmap
对象。
从ColorMatrix.postConcat
描述:
这在逻辑上与调用setConcat(postmatrix,this)相同
从setConcat
的描述来看:
将此颜色矩阵设置为两个指定颜色矩阵的串联,以便生成的颜色矩阵与应用 matB 然后应用 matA 具有相同的效果。
因此,如果理解正确,我相信ColorMatrix.postConcat
可以用来将两个 ColorMatrix 对象组合成一个,这样您就可以将其应用于您选择的位图一次,而不是执行两次。
简而言之,如果你想与在 Matlab 中获得的行为具有相同的行为,你可能需要自己实现它。