Подтвердить что ты не робот

Статическая инициализация на OpenCV Android

Я пытаюсь запустить OpenCV Учебное пособие 1 - Добавить OpenCV со статической инициализацией, используя this
я не хочу, чтобы было установлено отдельное приложение OpenCV Manager), но я получаю "OpenCV error: Cannot load info library for OpenCV."

Я сделал следующие вещи:

  • добавлена ​​папка с папками armeabi, armeabi-v7a и x86 внутри нее (из OpenCV-2.4.2-android-sdk/sdk/native/libs/)

  • добавлен статический код {if (!OpenCVLoader.initDebug())} чуть ниже private Sample1View mView;

  • удалил приведенный ниже код

if (! OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, это, mOpenCVCallBack))

Какая проблема?

4b9b3361

Ответ 1

Вы должны добавить код:

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))  

тогда никто не вызывает.

Надеюсь, это поможет вам.

Ответ 2

У меня та же проблема, я решил проблему, добавив следующий код в первый класс моего класса:

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);

Удачи.

Ответ 3

Сообщение журнала:

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

shuld не волнуйся. По крайней мере, в моем приложении он сообщает мне, что после OpenCV libs init будет ОК.

В образце кода объект CameraBridgeViewBase активируется при вызове BaseLoaderCallback. Это происходит, когда асинхронная загрузка библиотеки opencv завершена. Когда вы загружаете библиотеку статически, попробуйте добавить вызов в mOpenCVCameraView.enableView() в свой метод onResume() (после загрузки lib of coourse).

Ответ 4

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();
        }

он работает для учебника 2 в OCV4Android2.4.5.