Cómo integrar OpenCV Manager en la aplicación de Android

Estoy usando OpenCV2.4.7 Library en mi aplicación de Android . Cuando la aplicación se inicia, se dirige a Google Play store para la aplicación llamada OpenCV Manager . ¿Hay alguna manera de integrar esta aplicación en mi apk Android porque ya estamos usando la biblioteca OpenCV, entonces, ¿por qué la aplicación necesita OpenCV Engine nuevamente? es su forma de integrar este motor.

Sí. Para integrar OpenCV dentro de su aplicación y evitar la instalación explícita del administrador de OpenCV, primero debe leer el siguiente documento proporcionado por OpenCV.

Primera lectura -> Inicialización estática de OpenCV

Después de seguir con éxito los pasos, debe escribir el código siguiente para habilitar OpenCV en el código de inicialización de la aplicación antes de llamar a la API de OpenCV. Se puede hacer, por ejemplo, en la sección estática de la clase de actividad:

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

Referencias

  1. http://answers.opencv.org/question/2033/use-opencv-on-android-without-manager/
  2. Inicialización estática en OpenCV Android

Editar

Según el nuevo escenario en Documento y gracias a @rozhok para proporcionar nueva información, el método initDebug () no se puede usar para la creación de producción

Nota Este método está en desuso para el código de producción. Está diseñado solo para fines de desarrollo experimental y local. Si desea publicar su enfoque de uso de la aplicación con la inicialización asincrónica.

Debes usar el siguiente método para eso

Sintaxis

 static boolean initAsync(String Version, Context AppContext, LoaderCallbackInterface Callback) 

Ejemplo

 public class Sample1Java extends Activity implements CvCameraViewListener { private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i(TAG, "OpenCV loaded successfully"); mOpenCvCameraView.enableView(); } break; default: { super.onManagerConnected(status); } break; } } }; @Override public void onResume() { super.onResume(); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_6, this, mLoaderCallback); } ... } 

Referencias

  1. http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html

(1 Inserte estas líneas después de incluir $ (CLEAR_VARS) en el archivo opencv.mk

 OPENCV_CAMERA_MODULES:=on OPENCV_INSTALL_MODULES:=on include D:/opencv_with/OpenCV-2.4.10-android-sdk/sdk/native/jni/OpenCV.mk 

(2 En su directorio de proyecto actual, libs folder copie toda la carpeta dentro de opencv libs.

(3 Agregue en su actividad

 if (!OpenCVLoader.initDebug()) { Log.d("ERROR", "Unable to load OpenCV"); } else { mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); } private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { //Your opencv Operation code } } } }; 

Esto es lo que dice la documentación sobre la instalación de OpenCV Manager:

La carpeta apk contiene paquetes de Android que deben instalarse en el dispositivo Android de destino para habilitar el acceso a la biblioteca de OpenCV a través de la API de OpenCV Manager (ver detalles a continuación).

En los dispositivos de producción que tienen acceso a Google Play Market (e Internet), estos paquetes se instalarán desde Market en el primer inicio de una aplicación utilizando OpenCV Manager API.

Nota: La instalación desde Internet es la forma preferible ya que el equipo de OpenCV puede publicar versiones actualizadas de estos paquetes en Market.

Puede leer más sobre esto aquí: https://docs.opencv.org/3.0-beta/doc/tutorials/introduction/android_binary_package/O4A_SDK.html#general-info

Simplemente comente la línea en el siguiente código

 @Override public void onResume() { super.onResume(); //OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback); }