22

我正在尝试运行OpenCV教程 1 - 使用
添加具有静态初始化的 OpenCV 我不想安装单独的 OpenCV 管理器应用程序)但我得到一个"OpenCV error: Cannot load info library for OpenCV."

我做了以下事情:

  1. 添加了一个 libs 文件夹,其中包含armeabiarmeabi-v7ax86文件夹(来自 OpenCV-2.4.2-android-sdk/sdk/native/libs/)

  2. {if (!OpenCVLoader.initDebug())}在私有 Sample1View mView 下方添加了静态代码;

  3. 删除了以下代码

if (!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mOpenCVCallBack))

似乎是什么问题?

4

4 回答 4

11

您应该添加代码:

mOpenCVCallBack.onManagerConnected(LoaderCallbackInterface.SUCCESS);

后:

if(!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mOpenCVCallBack)) 

如果您删除:

if(!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mOpenCVCallBack))  

代码块然后没有人打电话。

希望它可以帮助你。

于 2012-11-11T09:27:17.717 回答
4

我有同样的问题,我通过在我的 Activity 类的第一个添加以下代码解决了这个问题:

static {
    if (!OpenCVLoader.initDebug()) {
        // Handle initialization error
    }
}

我还添加了

mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);

行前

OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback); 

并评论了这一行

OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);

祝你好运。

于 2014-08-08T13:19:06.213 回答
1

日志消息:

"OpenCV error: Cannot load info library for OpenCV."

不用担心你。至少在我的应用程序中,它告诉我类似 OpenCV libs init 之后就可以了。

在示例代码中,当调用 BaseLoaderCallback 时,CameraBridgeViewBase 对象被启用。当 opencv 库的异步加载完成时会发生这种情况。当您静态加载库时,尝试在 onResume() 方法中添加对 mOpenCVCameraView.enableView() 的调用(在加载当然库之后)。

于 2013-05-30T09:42:38.660 回答
0

initAsync() 需要一个回调来加载 opencv 库和您的 jni 库。

检查回调函数并使其在 if (!OpenCVLoader.initDebug()) 中正确,而不是在回调中!

            if (!OpenCVLoader.initDebug()) {
            // Handle initialization error
              Log.i(TAG, "OpenCV load not successfully");
        } else {
            System.loadLibrary("mixed_sample");
            //System.loadLibrary("my_jni_lib2");

            InitFeature(width,height);

            mOpenCvCameraView.enableView();
        }

它适用于 OCV4Android2.4.5 中的教程 2。

于 2013-07-12T06:17:55.303 回答