Comment intégrer OpenCV Manager dans L'application Android

je suis à l'aide de OpenCV2.4.7 Bibliothèque dans mon Android application . Lorsque l'application démarre son va à Google Play store pour L'application appelée OpenCV Manager . Est-ce qu'ils peuvent intégrer cette application dans mon apk Android parce que nous utilisons déjà la bibliothèque OpenCV donc pourquoi l'application a besoin de moteur OpenCV à nouveau? est leurs façon d'intégrer ce moteur.

26
demandé sur Vijay007 2013-11-28 10:37:57

4 réponses

Oui. Pour intégrer OpenCV dans votre application, et éviter l'installation explicite D'OpenCV manager, vous devez d'abord lire le document suivant fourni par OpenCV.

première lecture - > initialisation statique de L'OpenCV

après avoir suivi avec succès les étapes, vous devez écrire le code suivant pour activer OpenCV dans votre code d'initialisation de l'application avant d'appeler L'API OpenCV. Il peut être fait, par exemple, dans la section statique de la classe D'activité:

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

, les Références:

  1. http://answers.opencv.org/question/2033/use-opencv-on-android-without-manager/
  2. initialisation statique sur OpenCV Android

Modifier

selon le nouveau scénario dans le Document et merci @rozhok pour fournir de nouveaux renseignements, initDebug() méthode ne peut pas être utilisé pour la production de construire

Note cette méthode est dépréciée pour le code de production. Il est conçu uniquement à des fins expérimentales et de développement local. Si vous voulez publier votre approche d'utilisation de l'application avec l'initialisation async.

vous devez utiliser la méthode suivante pour cela

Syntaxe

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

exemple

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

    ...
}

Références

  1. http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html
22
répondu Chintan Rathod 2017-05-23 10:31:30

(1 Insérer cette ligne après inclure $(CLEAR_VARS) dans opencv.MK file

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

(2 Dans votre répertoire projet dossier libs copie de tous les dossiers à l'intérieur d'opencv libs.

(3 Ajouter à votre activité

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

            }
            }
        }
    };
0
répondu MIkka Marmik 2015-04-09 05:41:36

C'est ce que dit la documentation sur L'installation de OpenCV Manager:

Le dossier

apk contient des paquets Android qui doivent être installés sur le périphérique Android cible pour permettre L'accès à la bibliothèque OpenCV via L'API OpenCV Manager (voir les détails ci-dessous).

sur les appareils de production qui ont accès à Google Play Market (et Internet) ces paquets seront installés à partir du marché au premier une application utilisant L'API OpenCV Manager.

...

Note: L'Installation à partir d'Internet est préférable car L'équipe OpenCV peut publier des versions mises à jour de ces paquets sur le marché.

vous pouvez en savoir plus ici: https://docs.opencv.org/3.0-beta/doc/tutorials/introduction/android_binary_package/O4A_SDK.html#general-info

0
répondu Luis Sandoval 2017-10-25 15:51:28

Juste un commentaire la ligne suivante de Code

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

}
-4
répondu Vijay007 2013-11-29 10:09:56