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.
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:
- http://answers.opencv.org/question/2033/use-opencv-on-android-without-manager/
- 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 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
}
}
}
};
C'est ce que dit la documentation sur L'installation de OpenCV Manager:
Le dossierapk 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
Juste un commentaire la ligne suivante de Code
@Override
public void onResume()
{
super.onResume();
//OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
}