其他分享
首页 > 其他分享> > Android Opencv静态初始化

Android Opencv静态初始化

作者:互联网

我正在使用静态初始化在我的应用程序中使用Android版OpenCV.初始化的代码是-

static {
    if(!OpenCVLoader.initDebug()) {
        Log.d("My App", "Unable to load OpenCV");
    } else {
        Log.d("My App", "OpenCV loaded");
    }
}

好吧,这很好.但是在OpenCV文档中,指定了不建议使用initDebug()-

Note This method is deprecated for production code. It is designed for
experimental and local development purposes only. If you want to
publish your app use approach with async initialization.

现在,如果我使用异步初始化,它将使用应安装在设备上的OpenCV管理器应用程序.这不是我想要的.

我的问题是-
如果不建议在发布模式下使用initDebug(),是否还有其他方法可以加载不使用OpenCV Manager的openCV?还是使用initDebug()加载OpenCV是安全的?

解决方法:

我的答案将来自我使用该库的经验!

OpenCVLoader.initDebug()迭代一些选项,最后使用System.loadLibrary(“ lib_name”)将库加载到内存中,并尝试向您介绍一些日志!

从OpenCVLoader.initDebug()方法documentation

Loads and initializes OpenCV library from current application package.
Roughly, it’s an analog of System.loadLibrary(“opencv_java”).

因此,最后,如果您要使用静态加载的库,这在大多数情况下更为方便,因为您不希望用户安装其他应用程序以使用您的应用程序,则应使用System将库加载到内存中. loadLibrary(“ lib_name”)以便能够在您的Java代码中使用它们,而直接加载它还是使用initDebug帮助器方法并不重要.

注意:库的新版本在库名称的末尾附加了版本,因此您应使用System.loadLibrary(“ opencv_java3”)或jniLibs文件夹中库名称的任何名称!

标签:opencv3-0,opencv,opencv4android,android
来源: https://codeday.me/bug/20191027/1943450.html