Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中,矩阵运算非常慢。如何改进这一操作?_Java_Android_Performance_Opencv - Fatal编程技术网

Java 在android中,矩阵运算非常慢。如何改进这一操作?

Java 在android中,矩阵运算非常慢。如何改进这一操作?,java,android,performance,opencv,Java,Android,Performance,Opencv,我用opencv编写了android应用程序。 首先,我开始在Visual C++中,因为我不知道Android函数的正确性。 Visual C++中没有问题(速度)。 但是,当我把C++代码翻译成Android代码时,操作任务非常慢。 (我知道台式电脑比安卓设备快。) 因此,我搜索了一些与此问题相关的信息,发现 java矩阵访问函数(get、put)需要很多时间。(位图也花了很多时间) 如何提高我的应用程序性能? (我想知道一些访问图像的有效方法) (有些人说应该使用数据类型?进行访问,但我不

我用opencv编写了android应用程序。 首先,我开始在Visual C++中,因为我不知道Android函数的正确性。 Visual C++中没有问题(速度)。 但是,当我把C++代码翻译成Android代码时,操作任务非常慢。 (我知道台式电脑比安卓设备快。)

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

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

下面是一个在CIE实验室进行减法运算的代码

    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);
            }
        }
    }
for(int i=0;i5)| |(颜色1>15)){
温度[0]=温度[1]=温度[2]=255;
进气温度输入(i、j、温度);
}否则{
温度[0]=温度[1]=温度[2]=0;
进气温度输入(i、j、温度);
}
}
}

labImage[num]和
img_temp
的类型是什么?假设它是a,您可以通过在循环外部创建
imageColorX
数组,并将其作为第三个参数传递,从而使
get
操作更快。get(i,j,imgColor1)。否则,您将为每个像素创建数组。
labImage[num]
img_temp
的类型是什么?假设它是a,您可以通过在循环外创建
imageColorX
数组一次,并将其作为第三个参数传递,即
labImage[num],使
获得
操作的速度大大加快。获取(i,j,imgColor1);
。否则,将为每个像素创建阵列。