Initialisation statique sur OpenCV Android [dupliquer]

cette question a déjà une réponse ici:

j'essaie d'exécuter OpenCV tutoriel 1-Ajouter OpenCV avec l'initialisation statique en utilisant ce

Je ne veux pas D'une OpenCV séparée. Gestionnaire application installée) mais je reçois un "OpenCV error: Cannot load info library for OpenCV."

j'ai fait les choses suivantes:

  1. a ajouté un dossier libs avec armeabi , armeabi-v7a , et x86 dossiers à l'intérieur de celui-ci (de OpenCV-2.4.2-android-sdk/sdk/native/libs/)

  2. a ajouté le code statique {if (!OpenCVLoader.initDebug())} juste au-dessous de L'échantillon privé1view mView;

  3. supprimé le code ci-dessous

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

Quel est le problème?

20
demandé sur Girish Nair 2012-09-27 10:52:16

4 réponses

vous devez ajouter le code:

mOpenCVCallBack.onManagerConnected(LoaderCallbackInterface.SUCCESS);

après:

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

si vous supprimez:

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

bloc de code puis personne n'appelle.

J'espère qu'il pourra vous aider.

11
répondu Qichao Chen 2012-11-13 08:09:46

j'ai le même problème, j'ai résolu le problème en ajoutant le code suivant au début de mon Activité en classe:

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

J'ai aussi ajouté

mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);

avant la ligne

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

et commente la ligne

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

bonne chance.

4
répondu user2874769 2014-08-08 13:19:06

Le message du journal:

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

ne vous inquiétez pas. Au moins dans mon application, il me dit quelque chose comme OpenCV libs init est OK après.

dans l'exemple de code, L'objet CameraBridgeViewBase est activé lorsque le BaseLoaderCallback est appelé. Cela se produit lorsque le chargement asynchrone de la bibliothèque opencv est terminé. Lorsque vous chargez la bibliothèque statiquement, essayez d'ajouter un appel à mOpenCVCameraView.enablview() dans votre méthode onResume () (après chargement de la lib de coourse).

1
répondu mockfrog 2013-05-30 09:42:38

initAsync () a besoin d'un rappel pour charger opencv libs et vos JNI libs.

vérifiez la fonction de rappel et faites-le dans le si (!OpenCVLoader.initDebug()), pas dans le rappel!

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

il fonctionne pour le tutoriel 2 en OCV4Android2.4.5.

0
répondu flankechen 2013-07-12 06:17:55