J'utilise OpenCV2.4.7 Library dans mon application Android. Lorsque l'application démarre, elle se rend sur Google Play Store pour application, appelée OpenCV Manager. Est-il possible d'intégrer cette application dans mon apk Android parce que nous utilisons déjà la bibliothèque OpenCV, alors pourquoi cette application a-t-elle besoin du moteur OpenCV? Y a-t-il un moyen d'intégrer ce moteur?
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 OpenCV
Après avoir suivi les étapes avec succès, vous devez écrire le code suivant pour activer OpenCV dans le code d'initialisation de votre application avant d'appeler l'API OpenCV. Cela peut être fait, par exemple, dans la section statique de la classe d'activité:
static {
if (!OpenCVLoader.initDebug()) {
// Handle initialization error
}
}
Références:
Selon le nouveau scénario de Document et merci à @rozhok pour les nouvelles informations fournies, la méthode initDebug () ne peut pas être utilisée pour la production
Remarque Cette méthode est obsolète pour le code de production. Il est conçu uniquement à des fins expérimentales et de développement local. Si vous souhaitez publier votre approche d'utilisation de l'application avec l'initialisation asynchrone.
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
Voici ce que dit la documentation sur l'installation d'OpenCV Manager:
Le dossier apk contient les packages Android à installer sur le périphérique Android cible pour permettre l'accès à la bibliothèque OpenCV via l'API du gestionnaire OpenCV (voir les détails ci-dessous).
Sur les appareils de production ayant accès à Google Play Market (et à Internet), ces packages seront installés à partir de Market lors du premier démarrage d'une application à l'aide de l'API OpenCV Manager.
...
Remarque: L'installation à partir d'Internet est la méthode préférable car l'équipe OpenCV peut publier des versions mises à jour de ces packages sur le marché.
Vous pouvez en savoir plus à ce sujet ici: https://docs.opencv.org/3.0-beta/doc/tutorials/introduction/Android_binary_package/O4A_SDK.html#general-info
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
include D:/opencv_with/OpenCV-2.4.10-Android-sdk/sdk/native/jni/OpenCV.mk
Dans le dossier libs de votre répertoire de projet actuel, copiez tous les dossiers à l'intérieur de libs OpenCV.
Ajouter dans 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
}
}
}
};