Je suis ce tutoriel mais avec Android Studio. J'ai effectué les étapes suivantes:
Création d'un nouveau projet dans Android Studio
Ajout d'OpenCV-2.4.5-sdk/sdk/Java en tant que module
Faites un clic droit sur mon module principal-> Modifier les paramètres du module-> ajouté le module ci-dessus en tant que dépendance
Pour mon activité principale, j'ai utilisé le code suivant (extrait de l'un des exemples):
package com.example.test;
import Android.os.Bundle;
import Android.app.Activity;
import Android.util.Log;
import Android.view.Menu;
import org.opencv.Android.BaseLoaderCallback;
import org.opencv.Android.CameraBridgeViewBase;
import org.opencv.Android.CameraBridgeViewBase.CvCameraViewListener;
import org.opencv.Android.LoaderCallbackInterface;
import org.opencv.Android.OpenCVLoader;
import org.opencv.core.Mat;
public class MainActivity extends Activity implements CvCameraViewListener {
private CameraBridgeViewBase mOpenCvCameraView;
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
{
Log.i("Yay", "OpenCV loaded successfully");
mOpenCvCameraView.enableView();
} break;
default:
{
super.onManagerConnected(status);
} break;
}
}
};
@Override
public void onResume()
{
super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_5, this, mLoaderCallback);
}
@Override
public void onCameraViewStarted(int width, int height) {
}
@Override
public void onCameraViewStopped() {
}
@Override
public Mat onCameraFrame(Mat inputFrame) {
return null;
}
}
L'éditeur de texte d'Android Studio pouvait identifier les packages que j'avais importés (comme org.opencv.Android), mais lors de ma compilation, j'ai eu les erreurs suivantes:
Gradle: error: package org.opencv.Android does not exist
Gradle: error: package org.opencv.Android does not exist
Gradle: error: package org.opencv.Android.CameraBridgeViewBase does not exist
Est-ce que quelqu'un sait pourquoi cela se produit?
J'avais un problème similaire avec mon Android Studio sous OS X. J'écris le code et Android Studio verrait les fichiers .jar que je faisais référence et sur lesquels j'avais déclaré des dépendances, mais lorsque Gradle est venu de construire le projet aller.
J'ai ouvert le fichier 'build.gradle' et j'ai dû ajouter manuellement des dépendances. Par exemple, voici mon dossier complet:
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.Android.tools.build:gradle:0.4'
}
}
apply plugin: 'Android'
dependencies {
compile files('libs/Android-support-v4.jar')
compile files('libs/gson-2.2.4.jar')
compile files('libs/jsoup-1.7.2.jar')
}
Android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
}
Comme vous pouvez le deviner, les lignes que j'ai ajoutées sont celles référençant Gson et Jsoup.
Inspiré par cette réponse , voici les étapes que j'ai suivies:
compile files('libs/opencv-library-2.4.5.jar')
Maintenant, le projet devrait être construit et fonctionner correctement.
Remarque: Dans les versions ultérieures d'OpenCV (par exemple 2.4.7), la bibliothèque se trouve dans ...\build\Java
.
J'ai rencontré un problème similaire.
Dans mon cas, Android Studio n'a pas réussi à ajouter la dépendance Gradle pour moi. Je devais l'ajouter moi-même dans le fichier Gradle de mon projet:
compiler le projet (": openCVLibrary2410")
Cela a résolu le problème. J'espère que ça aide.
Plus récemment, j'ai résolu le problème décrit ci-dessus en:
alors tout a bien fonctionné. La librairie opencv est un autre module de mon projet
dans mon IDE intellij, j'ai fixé comme suit:
- pointez sur votre application (dans votre projet) et cliquez sur F4 (le paramètre Modules est activé par défaut)
- sélectionnez Android-Gradle
- sélection de l'onglet Dépendances
- add (bouton + sélec- Dans mon cas, j'ajoute une nouvelle opportunité de maven.
- cliquez sur OK pour terminer, votre projet est reconstruit automatiquement.
TERMINÉ.
J'ai trouvé une solution de contournement et maintenant tout fonctionne.
J'ai dû créer un fichier Jar (openCV.jar), puis je l'ai ajouté en tant que bibliothèque au lieu d'un module, enfin dans le fichier gradle.build, j'ai ajouté cette ligne
compile files('libs/openCV.jar')
.
Donc finalement, je peux utiliser le code de la bibliothèque et ma construction est ok.
Je ne sais pas si c'est bon. Mais c'est comme ça que je l'ai fait. J'espère que ça aide.
Essayer de Ajouter à la dépendance dans Android Studio est infructueux il y a un bug.
Téléchargez OpenCV-2.4.5-Android-sdk.Zip à partir de OpenCVsite
Extraire où que ce soit sous OpenCV-2.4.5-Android-sdk, le mien s’est avéré être
/home/anthony/Documents/OpenCV-2.4.5-Android-sdk/
Ouvrez IntelliJ et choisissez Importer.
Sélectionnez le dossier à importer
/home/anthony/Documents/OpenCV-2.4.5-Android-sdk/sdk/Java/
le vôtre sera un peu différent, ne vous inquiétez pas, choisissez où vous voulez extrait OpenCV-2.4.5-Android-sdk
Une fois que l'assistant d'importation est terminé, créez l'application avec le menu.
Construire -> Reconstruire le projet
Fichier-> Module d'importation
/home/anthony/Documents/OpenCV-2.4.5-Android-sdk/sdk/Java/XXX.iml
le mien était sdk.iml, mais le vôtre pourrait être n'importe quoi mais il n'y en aura qu'un
iml fichier
Vous pouvez maintenant commencer à utiliser les fonctions OpenCV, commencez par taper
importation org.
une fois que vous tapez la période, IntelliJ devrait déposer une liste d’options dont l’une est
ouverture
Le reste dépend de toi.