Статическая инициализация на 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))
Какая проблема?
Ответы
Ответ 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.