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

时间:2015-06-13 14:33:17

标签: android linear-algebra

所以我有2个矩阵。

Colormatrix和Threshold。 Colormatrix最初是

SELECT 
    CONCAT('Round ', CAST(round As varchar(2)), '\n') As round,
    GROUP_CONCAT(usernames SEPARATOR '\n') As 
FROM (
SELECT
    round,
    CONCAT(t1.username, ' - ', t2.username) As usernames
FROM
    Table2 t
    JOIN
    Table1 t1 ON t.user1_id = t1.user_id
    JOIN
    Table1 t2 ON t.user2_id = t2.user_id) As dt
GROUP BY
    round

和阈值是:

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;]

现在这段代码在android T = [ 255 0 0 1 -306; 0 255 0 1 -306; 0 0 255 1 -306; 0 0 0 1 -306;] 中 返回:

colorMatrix.postConcat(threshold);

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

如果我在Matlab中做同样的事情,那就是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; ] 我明白了:

C*T'

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

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; ]

。它只是一个Android的东西吗?

1 个答案:

答案 0 :(得分:1)

  

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

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

  

它只是Android的东西吗?

我相信它更像是一个ColorMatrix的东西。在Android中,我认为ColorMatrix仅作为构建特殊ColorFilterColorMatrixColorFilter)的方式提供,主要用于Bitmap个对象。

来自ColorMatrix.postConcat说明:

  

这在逻辑上与调用setConcat(postmatrix,this)

相同

来自setConcat的描述:

  

将此colormatrix设置为两个指定颜色矩阵的串联,以便生成的colormatrix与应用matB然后应用matA具有相同的效果。

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

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