Utilisez OpenCV_Contrib (ArUco) avec Java! (Partie 1-Construire) (OpenCV-3.4.4)

Introduction (?)

Dans mes recherches, je suis tombé sur une situation où il serait préférable d'utiliser des marqueurs AR, j'ai donc cherché une bibliothèque capable de reconnaître les marqueurs AR et suis tombé sur quelque chose appelé ArUco. Cet article vous montre comment démarrer avec la bibliothèque ArUco. J'utilise Java car je ne peux pas utiliser C / C ++ / C #.

Je déclare également qu'utiliser OpenCV avec Java peut être une tâche ardue. Il semble que très peu de gens l'utilisent. Il existe peu d'exemples de code et de questions, même en anglais. Cependant, il fonctionne plus rapidement que Python, donc je pense qu'il a de nombreuses utilisations.

OpenCV OpenCV est une bibliothèque open source pour le traitement d'images et est assez largement utilisée. Les idées sont tellement couvertes qu'elles peuvent être combinées avec des fonctions.

OpenCV_Contrib OpenCV_Contrib est une bibliothèque qui se concentre sur les dernières technologies d'OpenCV et est traitée comme une aide. De plus, si vous n'utilisez que le corps principal, vous n'avez pas besoin de construire. Vous pouvez l'obtenir en le téléchargeant depuis OpenCV.org (page officielle). Cependant, il semble qu'OpenCV_Contrib doive être construit par moi-même probablement parce qu'il est traité comme un auxiliaire. Cette page décrit comment construire ce

ArUco Une bibliothèque qui peut exécuter AR. Vous pouvez générer et reconnaître des marqueurs AR. (Le code etc. sera décrit la prochaine fois.)

Préparation

Télécharger

Que télécharger La description
Source du projet OpenCV Assurez-vous de faire correspondre la version avec Conrib.
Je suis Version: 3.4.J'utilise 4.
OpenCV_Source du projet Contrib Assurez-vous de faire correspondre la version avec Conrib.
Je suis Version: 3.4.J'utilise 4.
CMake De manière appropriée.
Visual Studio J'ai utilisé Visual Studio Community 2017.(C++Je pense que j'ai dû mettre dans un compilateur ...)
Python Vous en avez probablement besoin même lorsque vous utilisez Java.
Je suis Version: 3.7.J'utilise 1.
JDK J'utilise Java8u191.
Ant Je suis Version: 1.10.J'utilise 5.

Installation

Développez la source du projet d'OpenCV et d'OpenCV_Contrib. Veuillez installer CMake et Visual Studio par vous-même.

Variables d'environnement Java, Ant

Est-ce un auteur-compositeur de façon inattendue? Donc, si vous ne le définissez pas correctement, vous ne pourrez pas créer. (J'étais accro ici)

Que télécharger La description
ANT_HOME Le dossier Ant extrait.
(ex: C:\SOFT_File\apache-ant-1.10.5)
JAVA_HOME Le dossier dans lequel Java est installé.
(ex: C:\Program Files\Java\jdk1.8.0_191)
Path Le contenu suivantajouter àS'il vous plaît.
C:\Program Files\CMake\bin, %ANT_HOME%\bin, %JAVA_HOME%\bin
(ex: C:\Program Files\CMake\bin;%ANT_HOME%\bin;%JAVA_HOME%\bin; )

Exécutez CMake

Il semble que vous deviez vous préparer pour la construction avec CMake avant de construire, donc je vais le faire.

article valeur
Where is the source code Spécifiez le chemin du dossier extrait.
(ex: C:/SOFT_File/opencv-3.4.4)
Where to build the binaries J'ai créé un dossier de construction sous la bibliothèque principale extraite et spécifié le chemin de ce dossier.
(ex: C:/SOFT_File/opencv-3.4.4/build)

Après avoir spécifié ces derniers, appuyez sur "Configurer". À ce stade, spécifiez le compilateur. Cette fois, nous utiliserons Visual Studio pour la construction, spécifions donc Visual Studio (celui qui correspond à la version). (J'ai choisi «Visual Studio 2017 Win64»)

Ensuite, un rouge apparaît, mais ne vous inquiétez pas. Cochez les cases "Groupé" et "Avancé".

article valeur
OPENCV_EXTRA_MODULES_PATH OpenCV déployé_Du dossier parent de ContribModules ci-dessousEst spécifié.
(OpenCV déployé_Pas le dossier parent de Contrib)

Appuyez de nouveau sur Configurer.

Désactivez la case à cocher "BUILD_SHARED_LIBS". (Référence: http://answers.opencv.org/question/189941/java-cant-find-dependent-libraries/)

Appuyez de nouveau sur Configurer.

Veuillez cocher la case "BUILD_FAT_JAVA_LIB".

Appuyez de nouveau sur Configurer.

À ce stade, s'il n'y a pas d'objet rouge, c'est OK. Si tel est le cas, veuillez le corriger.

Vérifiez maintenant la sortie du journal. En particulier, assurez-vous que Java est comme suit. (C'est juste un exemple)

  Java:                          export all functions
    ant:                         C:/SOFT_File/apache-ant-1.10.5/bin/ant.bat (ver 1.10.5)
    JNI:                         C:/Program Files/Java/jdk1.8.0_191/include C:/Program Files/Java/jdk1.8.0_191/include/win32 C:/Program Files/Java/jdk1.8.0_191/include
    Java wrappers:               YES
    Java tests:                  YES

Texte intégral: https://pastebin.com/u2Qiy5EL

S'il n'y a pas de problème, Appuyez sur "Générer".

Lorsque vous avez terminé, appuyez sur "Ouvrir le projet". Cela lancera Visual Studio. (Vers la section suivante)

Construire dans Visual Studio

Attendez un moment pour lire diverses choses. Réglez «Release» / «Debug» au milieu sur «Release». Veuillez également définir le suivant sur "x64". Appuyez sur "Build" -> "Batch Build" dans la barre de menu ci-dessus. Vérifiez à la fois ʻALL_BUILD et ʻINSTALL et exécutez.

Si vous attendez un moment (environ 1h?), Il doit être créé dans le dossier spécifié dans Où construire les binaires dans CMake plus tôt (ex: (dossier d'extraction OpenCV) / build / install).

SC_java_2018-12-8_0-25-40_No-00.png

S'il n'est pas généré ou si vous rencontrez des problèmes avec cet article, veuillez laisser un commentaire.

référence

Construire OpenCV à l'aide de MinGW sur Windows - Vous, moi et la communautéCréation d'un wrapper Java pour OpenCV - Vous, moi et la communauté ↑ C'était la plus simple à comprendre en tant que version Java.

Construction de l'environnement OpenCV (OpenCV 3.0 / 3.1) --Build InsiderPremier développement OpenCV-Personnalisation d'OpenCV à l'aide de CMake [OpenCV 3.1.0] --Build Insider )

la prochaine fois

La prochaine fois, j'aimerais lancer un programme léger.

Utilisez OpenCV_Contrib (ArUco) avec Java! (Partie 2-Programmation)

Recommended Posts

Utilisez OpenCV_Contrib (ArUco) avec Java! (Partie 1-Construire) (OpenCV-3.4.4)
Utilisez OpenCV_Contrib (ArUco) avec Java! (Partie 2-Programmation)
Utiliser OpenCV avec Java
Utiliser PreparedStatement en Java
Utilisons Twilio en Java! (Introduction)
[Java] N'utilisez pas "+" dans append!
Utilisez des clés composites dans Java Maps.
Comment utiliser les classes en Java?
Faire une analyse de phrase en Java 8 (partie 2)
Java + OpenCV 3.X avec IntelliJ IDEA
Utilisez-vous Stream en Java?
Création d'une analyse de phrase dans Java 8 (partie 1)
JSON en Java et Jackson Part ③ Incorporer JSON dans HTML et l'utiliser à partir de JavaScript
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
[Java] Utiliser la technologie cryptographique avec les bibliothèques standard
Utilisez "Rhino" qui exécute JavaScript en Java
J'ai fait l'étalonnage de la caméra OpenCV en Java
Construire OpenCV avec Java Wrapper sur Ubuntu 18.04
Création d'une classe de matrice dans Java Partie 1
Détecter des vidéos similaires dans Java et OpenCV rev.2
[Gradle] Opérations de construction souvent effectuées dans les projets Java
[Java] Utilisation de final dans la déclaration de variable locale
Détecter des vidéos similaires dans Java et OpenCV rev.3
Ce que j'ai appris en Java (partie 2) Que sont les variables?
[JAVA] [Spring] [MyBatis] Utiliser IN () avec SQL Builder
Détecter des vidéos similaires dans Java et OpenCV rev.1
Partition en Java
Changements dans Java 11
Janken à Java
java pratique partie 1
[Java] Utilisez Collectors.collectingAndThen
Taux circonférentiel à Java
FizzBuzz en Java
[LeJOS] Programmons mindstorm-EV3 avec Java [Construction de l'environnement partie 2]
Un examen rapide de Java appris en classe part4
Je veux aussi utiliser ES2015 avec Java! → (´ ・ ω ・ `)
Ce que j'ai appris en Java (partie 3) Déclaration d'exécution des instructions
Un examen rapide de Java appris en classe part3
Un examen rapide de Java appris en classe part2
[JAVA] [Spring] [MyBatis] Utiliser GROUP BY dans SQL Builder
Utilisation correcte de la classe abstraite et de l'interface en Java
Remarques sur l'utilisation des expressions régulières en Java