Verwenden Sie OpenCV_Contrib (ArUco) mit Java! (Teil 1-Build) (OpenCV-3.4.4)

Einführung (?)

Bei meinen Recherchen stieß ich auf eine Situation, in der es besser wäre, AR-Marker zu verwenden. Deshalb suchte ich nach einer Bibliothek, die AR-Marker erkennen konnte, und stieß auf etwas namens ArUco. Dieser Artikel zeigt Ihnen, wie Sie mit der ArUco-Bibliothek beginnen. Ich verwende Java, weil ich C / C ++ / C # nicht verwenden kann.

Ich erkläre auch, dass die Verwendung von OpenCV mit Java eine entmutigende Aufgabe sein kann. Es scheint, dass nur sehr wenige Leute es benutzen. Selbst auf Englisch gibt es nur wenige Codebeispiele und Fragen. Es läuft jedoch schneller als Python, daher denke ich, dass es viele Verwendungszwecke hat.

OpenCV OpenCV ist eine Open-Source-Bibliothek für die Bildverarbeitung und wird ziemlich häufig verwendet. Die Ideen werden so umfassend behandelt, dass sie mit Funktionen kombiniert werden können.

OpenCV_Contrib OpenCV_Contrib ist eine Bibliothek, die sich auf die neueste Technologie in OpenCV konzentriert und als Hilfe behandelt wird. Wenn Sie nur den Hauptkörper verwenden, müssen Sie nicht bauen. Sie können es herunterladen, indem Sie es von OpenCV.org (offizielle Seite) herunterladen. Es scheint jedoch, dass OpenCV_Contrib von mir selbst erstellt werden muss, wahrscheinlich weil es als Hilfsmittel behandelt wird. Diese Seite beschreibt, wie dies erstellt wird

ArUco Eine Bibliothek, die AR ausführen kann. Sie können AR-Marker generieren und erkennen. (Der Code usw. wird beim nächsten Mal beschrieben.)

Vorbereitung

herunterladen

Was zum Download Erläuterung
OpenCV-Projektquelle Stellen Sie sicher, dass die Version mit Conrib übereinstimmt.
Ich bin Version: 3.4.Ich benutze 4.
OpenCV_Projektquelle beitragen Stellen Sie sicher, dass die Version mit Conrib übereinstimmt.
Ich bin Version: 3.4.Ich benutze 4.
CMake Passend.
Visual Studio Ich habe Visual Studio Community 2017 verwendet.(C++Ich glaube ich musste einen Compiler einbauen ...)
Python Sie benötigen es wahrscheinlich auch, wenn Sie Java verwenden.
Ich bin Version: 3.7.Ich benutze 1.
JDK Ich benutze Java8u191.
Ant Ich bin Version: 1.10.Ich benutze 5.

Installation

Erweitern Sie die Projektquelle von OpenCV und OpenCV_Contrib. Bitte installieren Sie CMake und Visual Studio selbst.

Java, Ant-Umgebungsvariablen

Ist das unerwartet ein Songwriter? Wenn Sie es also nicht richtig einstellen, können Sie es nicht erstellen. (Ich war hier süchtig)

Was zum Download Erläuterung
ANT_HOME Der extrahierte Ant-Ordner.
(ex: C:\SOFT_File\apache-ant-1.10.5)
JAVA_HOME Der Ordner, in dem Java installiert ist.
(ex: C:\Program Files\Java\jdk1.8.0_191)
Path Die folgenden InhaltehinzufügenBitte.
C:\Program Files\CMake\bin, %ANT_HOME%\bin, %JAVA_HOME%\bin
(ex: C:\Program Files\CMake\bin;%ANT_HOME%\bin;%JAVA_HOME%\bin; )

Führen Sie CMake aus

Es scheint, dass Sie sich vor dem Erstellen mit CMake auf den Build vorbereiten müssen, also werde ich es tun.

Artikel Wert
Where is the source code Geben Sie den Pfad des extrahierten Ordners an.
(ex: C:/SOFT_File/opencv-3.4.4)
Where to build the binaries Ich habe einen Build-Ordner unter der extrahierten Hauptbibliothek erstellt und den Pfad dieses Ordners angegeben.
(ex: C:/SOFT_File/opencv-3.4.4/build)

Nachdem Sie diese angegeben haben, drücken Sie "Konfigurieren". Geben Sie zu diesem Zeitpunkt den Compiler an. Dieses Mal verwenden wir Visual Studio für den Build. Geben Sie also Visual Studio an (das der Version entspricht). (Ich habe "Visual Studio 2017 Win64" gewählt)

Dann taucht ein roter auf, aber keine Sorge. Aktivieren Sie die Kontrollkästchen "Gruppiert" und "Erweitert".

Artikel Wert
OPENCV_EXTRA_MODULES_PATH Bereitgestelltes OpenCV_Vom übergeordneten Ordner von ContribModule untenKonkretisieren.
(Bereitgestelltes OpenCV_Nicht der übergeordnete Ordner von Contrib)

Drücken Sie erneut auf Konfigurieren.

Deaktivieren Sie das Kontrollkästchen "BUILD_SHARED_LIBS". (Referenz: http://answers.opencv.org/question/189941/java-cant-find-dependent-libraries/)

Drücken Sie erneut auf Konfigurieren.

Bitte aktivieren Sie das Kontrollkästchen "BUILD_FAT_JAVA_LIB".

Drücken Sie erneut auf Konfigurieren.

Wenn zu diesem Zeitpunkt kein rotes Objekt vorhanden ist, ist dies in Ordnung. Wenn ja, korrigieren Sie es bitte.

Überprüfen Sie nun die Protokollausgabe. Stellen Sie insbesondere sicher, dass Java wie folgt ist. (Es ist nur ein Beispiel)

  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

Volltext: https://pastebin.com/u2Qiy5EL

Wenn es kein Problem gibt, Drücken Sie "Generieren".

Wenn Sie fertig sind, klicken Sie auf "Projekt öffnen". Dadurch wird Visual Studio gestartet. (Zum nächsten Abschnitt)

In Visual Studio erstellen

Warten Sie eine Weile, um verschiedene Dinge zu lesen. Stellen Sie "Release" / "Debug" in der Mitte auf "Release". Stellen Sie außerdem den nächsten auf "x64". Drücken Sie in der Menüleiste oben auf "Build" -> "Batch Build". Überprüfen Sie sowohl ALL_BUILD als auch INSTALL und führen Sie es aus.

Wenn Sie eine Weile warten (ca. 1 Stunde?), Sollte es in dem Ordner erstellt werden, der zuvor in CMake unter "Wo werden die Binärdateien erstellt werden" angegeben ist (z. B. "(OpenCV-Extraktionsordner) / build / install").

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

Wenn es nicht generiert wurde oder wenn Sie Probleme mit diesem Artikel haben, hinterlassen Sie bitte einen Kommentar.

Referenz

OpenCV mit MinGW unter Windows erstellen - Sie, ich selbst und die CommunityJava Wrapper für OpenCV erstellen - Sie, ich selbst und die Community ↑ Es war am einfachsten als Java-Version zu verstehen.

OpenCV-Umgebungskonstruktion (OpenCV 3.0 / 3.1) - Build InsiderErste OpenCV-Entwicklung - Anpassung von OpenCV mit CMake [OpenCV 3.1.0] - Build Insider )

nächstes Mal

Das nächste Mal möchte ich tatsächlich ein Lichtprogramm ausführen.

Verwenden Sie OpenCV_Contrib (ArUco) mit Java! (Teil 2-Programmierung)

Recommended Posts

Verwenden Sie OpenCV_Contrib (ArUco) mit Java! (Teil 1-Build) (OpenCV-3.4.4)
Verwenden Sie OpenCV_Contrib (ArUco) mit Java! (Teil 2-Programmierung)
Verwenden Sie OpenCV mit Java
Verwenden Sie PreparedStatement in Java
Verwenden wir Twilio in Java! (Einführung)
[Java] Verwenden Sie nicht "+" im Anhang!
Verwenden Sie zusammengesetzte Schlüssel in Java Maps.
Wie verwende ich Klassen in Java?
Führen Sie eine Phrasenanalyse in Java 8 durch (Teil 2).
Java + OpenCV 3.X mit IntelliJ IDEA
Verwenden Sie Stream in Java?
Erstellen einer Phrasenanalyse in Java 8 (Teil 1)
JSON in Java und Jackson Teil ③ Betten Sie JSON in HTML ein und verwenden Sie es aus JavaScript
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
[Java] Verwenden Sie kryptografische Technologie mit Standardbibliotheken
Verwenden Sie "Rhino", das JavaScript in Java ausführt
Ich habe die OpenCV-Kamerakalibrierung in Java durchgeführt
Erstellen Sie OpenCV mit Java Wrapper unter Ubuntu 18.04
Erstellen einer Matrixklasse in Java Teil 1
Erkennen Sie ähnliche Videos in Java und OpenCV Version 2
[Gradle] Build-Vorgänge, die häufig in Java-Projekten ausgeführt werden
[Java] Verwendung von final in der lokalen Variablendeklaration
Erkennen Sie ähnliche Videos in Java und OpenCV Version 3
Was ich in Java gelernt habe (Teil 2) Was sind Variablen?
[JAVA] [Spring] [MyBatis] Verwenden Sie IN () mit SQL Builder
Erkennen Sie ähnliche Videos in Java und OpenCV Version 1
Partisierung in Java
Änderungen in Java 11
Janken in Java
Java-Übung Teil 1
[Java] Verwenden Sie Collectors.collectingAndThen
Umfangsrate in Java
FizzBuzz in Java
[LeJOS] Programmieren wir mindstorm-EV3 mit Java [Umgebungskonstruktion Teil 2]
Ein kurzer Überblick über Java, das in Klasse 4 gelernt wurde
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
Was ich in Java gelernt habe (Teil 3) Anweisung zur Ausführung von Anweisungen
Ein kurzer Überblick über Java, das in Klasse 3 gelernt wurde
Ein kurzer Überblick über Java, das in Klasse 2 gelernt wurde
[JAVA] [Spring] [MyBatis] Verwenden Sie GROUP BY in SQL Builder
Verwendung von Abstract Class und Interface in Java richtig
Hinweise zur Verwendung regulärer Ausdrücke in Java