我使用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);
}
}
}