在android中,矩阵操作非常慢。如何改善这种操作?

时间:2016-06-09 08:21:29

标签: java android performance opencv

我使用opencv编写了android应用程序。 起初,我从visual c ++开始,因为我并不完全了解android函数。 在visual c ++中没有问题(速度)。 但是,当我将c ++代码翻译成android代码时,操作任务非常慢。 (我知道台式电脑比Android设备更快。)

因此,我搜索了一些与此问题相关的信息并发现了 java矩阵访问函数(get,put)需要花费很多时间。 (位图也花了很多时间)

如何提高应用程序性能? (我想知道一些有效的图像访问方式) (有人说你应该使用数据类型?但我不知道其含义和方式。

在下面,有一个代码在CIE Lab

中进行减法运算
    for (int i = 0; i < imageRows; i ++) {
        for (int j = 1; j < imageCols; j++ ) {
            imgColor1 = labImage[num].get(i, j);
            imgColor2 = labImage[num + 1].get(i, j);

            color1 = (int) Math.abs(imgColor1[0] - imgColor2[0]);
            color2 = (int) Math.abs(imgColor1[1] - imgColor2[1]);
            color3 = (int) Math.abs(imgColor1[2] - imgColor2[2]);

            if ((color2 + color3 > 5) || (color1 > 15)) {
                temp[0] = temp[1] = temp[2] = 255;
                img_temp.put(i, j, temp);
            } else {
                temp[0] = temp[1] = temp[2] = 0;
                img_temp.put(i, j, temp);
            }
        }
    }

0 个答案:

没有答案