Je souhaite utiliser la bibliothèque OpenCV dans mon application avec Android Studio. J'ai suivi les instructions trouvées ici mais j'obtiens une erreur
Configuration avec le nom 'default' introuvable
Qu'est-ce qui ne va pas?
J'utilise Android Studio 1.0 avec la version 2.2.1.
Les étapes ci-dessous pour utiliser Android OpenCV sdk dans Android Studio. Ceci est une version simplifiée de cette réponse ( 1 ) SO.
L'étape (6) consiste en ce qu'Android Studio attend des bibliothèques natives dans le dossier app/src/main/jniLibs
au lieu du dossier libs
plus ancien. Pour ceux qui découvrent Android OpenCV, ne manquez pas les étapes ci-dessous.
static{ System.loadLibrary("opencv_Java"); }
(Remarque: pour OpenCV version 3 à cette étape, vous devriez plutôt charger la bibliothèque opencv_Java3
.)OpenCV écrit est en C/C++. Les wrappers Java sont
Pour toutes les personnes qui souhaitaient fuir avec toutes les étapes et les captures d'écran des réponses (géniales!) Ci-dessus, cela a fonctionné pour moi avec Android studio 2.2.1
:
Android Studio
, cliquez sur File->New-> Import Module
, naviguez jusqu'à \path_to_your_unzipped_file\OpenCV-Android-sdk\sdk\Java
et cliquez sur OK, puis acceptez tous les dialogues par défaut.Dans le fichier gradle
de votre module app
, ajoutez ceci au bloc des dépendances:
dependencies {
compile project(':openCVLibraryXYZ')
//rest of code
}
Où XYZ est la version exacte que vous téléchargez, par exemple dans mon cas:
dependencies {
compile project(':openCVLibrary320')
//rest of code
}
Android Studio 3.4 + OpenCV 4.1
Téléchargez le dernier fichier OpenCV Zip à partir de ici (la version la plus récente est 4.1.0) et décompressez-le dans votre espace de travail ou dans un autre dossier.
Créez un nouveau projet Android Studio normalement. Cliquez sur File->New->Import Module
, naviguez jusqu'à /path_to_unzipped_files/OpenCV-Android-sdk/sdk/Java
, définissez le nom du module sur opencv
, cliquez sur Next
et désélectionnez toutes les options de l'écran.
Activez le mode d'affichage de fichier Project
(le mode par défaut est Android
). Dans le fichier opencv/build.gradle
, remplacez apply plugin: 'com.Android.application'
par apply plugin: 'com.Android.library'
et remplacez application ID "org.opencv"
par
minSdkVersion 21
targetSdkVersion 28
(selon les valeurs dans app/build.gradle
). Synchroniser le projet avec les fichiers Gradle.
Ajouter cette chaîne au bloc des dépendances dans le fichier app/build.gradle
dependencies {
...
implementation project(path: ':opencv')
...
}
Sélectionnez à nouveau Android
mode d'affichage du fichier. Faites un clic droit sur le module app
et allez à New->Folder->JNI Folder
. Sélectionnez changer l'emplacement du dossier et définissez src/main/jniLibs/
.
Sélectionnez à nouveau Project
mode d'affichage de fichier et copiez tous les dossiers de /path_to_unzipped_files/OpenCV-Android-sdk/sdk/native/libs
vers app/src/main/jniLibs
.
Toujours en mode de visualisation de fichier Android
, cliquez avec le bouton droit de la souris sur le module app
et choisissez Link C++ Project with Gradle
. Sélectionnez Build System ndk-build
et le chemin d'accès à OpenCV.mk
fichier /path_to_unzipped_files/OpenCV-Android-sdk/sdk/native/jni/OpenCV.mk
.
path_to_unzipped_files
ne doit pas contenir d'espaces, sinon vous obtiendrez une erreur!
Pour vérifier l’initialisation OpenCV, ajoutez le message Toast à la méthode MainActivity onCreate()
:
Toast.makeText(MainActivity.this, String.valueOf(OpenCVLoader.initDebug()), Toast.LENGTH_LONG).show();
Si l'initialisation réussit, vous verrez true
dans le message Toast, sinon vous verrez false
.
Cela a fonctionné pour moi et était aussi simple que d'ajouter une dépendance à un grade:
https://bintray.com/seesaa/maven/opencv#
https://github.com/seesaa/opencv-Android
Le seul inconvénient était que je devais utiliser un périphérique de débogage matériel car les émulateurs arm étaient trop lents pour moi (comme le dit AVD Manager), et, comme décrit dans le fichier README du référentiel, cette version n'inclut pas le support x86 ou x86_64.
Il semble construire et le test suggéré:
static {
OpenCVLoader.initDebug();
}
crache un tas de résultats qui me paraissent assez bien.
Toute personne confrontée à un problème lors de la création de jniLibs cpp est montrée ..juste d’ajouter ndk ..
Intégration opencv avec Android studio
Ceux qui veulent avoir une vidéo youtube pour la même chose, essayez avec la dernière version de opencv (3.4.0), mais ma chance n’était pas suffisante pour la version montrée (2.4.9) ( opencv releases ).