android 在 OpenCV 中迭代矩阵的性能

Performance to iterate matrix in OpenCV for android

我是 OpenCv4Android 的新手,我需要遍历矩阵来计算阈值。

但是一个简单的 double 需要花费很多时间才能执行 (0.29 fps)。 像这样:

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    mRGBA = inputFrame.rgba();

    Mat mHSV = new Mat();
    Imgproc.cvtColor(mRGBA, mHSV, Imgproc.COLOR_RGB2HSV, 4);

    /* Split channels and apply weight in image */
    ArrayList<Mat> mChannels = new ArrayList<Mat>(3);
    Core.split(mHSV, mChannels);
    Mat h = mChannels.get(1);
    Mat s = mChannels.get(2);

    int cols = h.cols();
    int rows = h.rows();

    Mat result = new Mat(h.size(), h.type(), new Scalar(0));

    for(int l = 0; l < rows; ++l){
        for(int c = 0 ; c < cols ; ++c){
            result.put(l,c, 1);
        }
    }

    return result;
}

我读到 JNI 的性能并没有那么好。那么,有没有办法达到更好的效果呢?

谢谢。

我决定使用 JNI。我决定使用 JNI。所以,作为支持,我使用了这个视频。 https://software.intel.com/en-us/articles/training-series-for-development-on-intel-based-android-devices