java - C++ native OpenCV 到 opencv4android 端口太慢?

标签 java android performance opencv opencv4android

我正在将一些 C++ OpenCV 桌面代码移植到 Android 并使用 opencv4android。我计划最终切换到 NTK,但就目前而言,由于我对 Android 开发还很陌生,我认为这样做会更容易。

OpenCV 函数在我的 i7-4790 台式机(单线程且无 GPU)上需要 37 毫秒。 Android Nexus 4 上的功能需要 10,557 毫秒。我知道我可以预料到 java 到 native 调用开销会有所下降,但这种巨大的差异似乎很难解释。我正在使用 get/put 但在相对较小的图像(大约 500x500px)上进行大量的每像素操作。

我将我的 opencv 函数放在以下方法中:

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {

    @Override
    public void onManagerConnected(int status) {

        switch (status) {
            case LoaderCallbackInterface.SUCCESS:
            {
                 // opencv4android code
                 ...
            }
        }
    }
}

是否有问题(可能与线程有关)或性能是否正常?我应该期待什么样的放缓? NTK 怎么样?

非常感谢,

纪尧姆

最佳答案

感兴趣的 friend ,我刚刚完成了NTK版本。大约需要 125 毫秒,所以加速确实很可观。

关于java - C++ native OpenCV 到 opencv4android 端口太慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35157418/

相关文章:

java - 如何在android中获取第三方应用程序的详细信息?

android - Android Studio中继承的外部依赖项起源

python (2.7) : Why is there a performance difference between the following 2 code snippets that implement the intersection of two dictionaries

javascript - jQuery 多次复制现有的 Div

java - 在 Java 中收集符号出现的最快方法是什么

java - 使用 webdriver 在 selenium 中处理灯箱/光窗

java - 在多次使用 GUI 后发生 java.awt.AWTEventMulticaster.mouseExited(Unknown Source)

java - BlockingQueue 的 drainTo() 方法的线程安全

java - Filereader 上的“没有这样的文件或目录”错误 - Android

android - 更改 WebView 的 android 输入法