ArUko Marker: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 15: Zeile 15:
=== ArUco ===
=== ArUco ===
Unten finden Sie die Datei getaruco.cpp.Führen Sie folgendem Befehl im MATLAB Command Window aus:<br>
Unten finden Sie die Datei getaruco.cpp.Führen Sie folgendem Befehl im MATLAB Command Window aus:<br>
<code> >> mexOpenCV getaruco.cpp -L~/opencv310/lib/ -lopencv_aruco.3.1.0 -I/usr/local/include</code>
<code> >> mexOpenCV getaruco.cpp -L~/opencv310/lib/ -lopencv_aruco.3.1.0 -I/usr/local/include</code>


'''Wichtig''' ersetzen Sie die Pfade entsprechend Ihrer openCV Installation. Erläuterung der flags:<\br>
'''Wichtig''' ersetzen Sie die Pfade entsprechend Ihrer openCV Installation. Erläuterung der flags:<\br>
Zeile 26: Zeile 26:
! Flag  !! Erläuterung
! Flag  !! Erläuterung
|-
|-
| -L || looks in directory for library files
| <code>-L</code> || looks in directory for library files
|-l  ||          links with a library file.
|-
|-
|-I  ||          adds include directory of header files<\br>
| <code>-l</code>  ||          links with a library file
|-
| <code>-I</code> ||          adds include directory of header files
|-
|-
|}
|}
   
   
Es sollte jetzt die MEX Datei getaruco.mexw64 erzeugt worden sein. Damit sollten Sie getaruco wie andere MATLAB Funktionen auch verwenden können. Beispielhaft wurde getaruco.cpp so geschrieben. dass ein 1000x1000 uint8 Image erzeugt wird, dass eine markerId von 12 und eine "border bits size" von 1 hat. Probieren Sie z.B.: >> im = getaruco(1000,12,1);
Es sollte jetzt die MEX Datei <code>getaruco.mexw64</code> erzeugt worden sein. Damit sollten Sie getaruco wie andere MATLAB Funktionen auch verwenden können. Beispielhaft wurde getaruco.cpp so geschrieben. dass ein 1000x1000 uint8 Image erzeugt wird, dass eine markerId von 12 und eine "border bits size" von 1 hat. Probieren Sie z.B.:  
<code>>> im = getaruco(1000,12,1);</code>


Um die Klassen der ArUco Module zu nutzen, müssen Sie die mexFunction() in getaruco.cpp verändern. Für unterschiedliche Funktionen bietet es sich an, z.B. getArucoFunctionOne.cpp, getArucoFunctionTwo.cpp, etc. zu schreiben. Nach etwas Arbeit können Sie ArUco direkt aus MATLAB heraus nutzen.
Um die Klassen der ArUco Module zu nutzen, müssen Sie die <code>mexFunction()</code> in <code>getaruco.cpp</code> verändern. Für unterschiedliche Funktionen bietet es sich an, z.B. <code>getArucoFunctionOne.cpp, getArucoFunctionTwo.cpp</code> etc. zu schreiben. Nach etwas Arbeit können Sie ArUco direkt aus MATLAB heraus nutzen.
Die Entwickler haben mich noch darauf hingewiesen, das wir nicht gegen highgui, videoio oder imgcodecs Libraries linken. Dinge wie 'imshow' aus openCV sind damit nicht verfügbar.
Die Entwickler haben mich noch darauf hingewiesen, das wir nicht gegen <code>highgui, videoio</code> oder <code>imgcodecs</code> Libraries linken. Dinge wie 'imshow' aus openCV sind damit nicht verfügbar.





Aktuelle Version vom 12. Dezember 2017, 16:51 Uhr

Einbindung der OpenCV Library in Matlab

Es sind im Grunde drei Bereiche: openCV, das MATLAB Computer Vision Toolbox openCV Interface und das Erzeugen einer MEX Datei, welche die Funktionen der contrib Module zugänglich macht. Für den letzten Teil erhalten Sie von uns die notwendige *.cpp.

openCV

  1. Laden Sie den Source Code von openCV 3.1 herunter: https://github.com/opencv/opencv/tree/3.1.0
  2. Laden Sie das contrib Repository herunter: https://github.com/opencv/opencv_contrib/tree/3.1.0
  3. Installieren Sie openCV auf Ihrem Rechner nach der folgenden Anleitung: https://github.com/opencv/opencv_contrib/blob/master/README.md
  4. Notieren Sie sich bitte wo die Library gebaut werden und wohin die Header kopiert werden.

MATLAB & Computer Vision System Toolbox

  1. Installieren Sie die Computer Vision System Toolbox (in Ihrer Lizenz enthalten), z.B. über den MATLAB Desktop -> AddOns -> GetAddOns.
  2. Installieren Sie das Computer Vision System Toolbox openCV Interface nach folgender Anleitung: https://www.mathworks.com/help/vision/ug/opencv-interface.html#buxwnlt
  3. (optional) Video Using OpenCV with MATLAB (http://youtu.be/BasC2jkgyaM)

ArUco

Unten finden Sie die Datei getaruco.cpp.Führen Sie folgendem Befehl im MATLAB Command Window aus:

 >> mexOpenCV getaruco.cpp -L~/opencv310/lib/ -lopencv_aruco.3.1.0 -I/usr/local/include

Wichtig ersetzen Sie die Pfade entsprechend Ihrer openCV Installation. Erläuterung der flags:<\br> -L looks in directory for library files.<\br> -l links with a library file.<\br> -I adds include directory of header files<\br>

Flag Erläuterung
-L looks in directory for library files
-l links with a library file
-I adds include directory of header files

Es sollte jetzt die MEX Datei getaruco.mexw64 erzeugt worden sein. Damit sollten Sie getaruco wie andere MATLAB Funktionen auch verwenden können. Beispielhaft wurde getaruco.cpp so geschrieben. dass ein 1000x1000 uint8 Image erzeugt wird, dass eine markerId von 12 und eine "border bits size" von 1 hat. Probieren Sie z.B.:

>> im = getaruco(1000,12,1);

Um die Klassen der ArUco Module zu nutzen, müssen Sie die mexFunction() in getaruco.cpp verändern. Für unterschiedliche Funktionen bietet es sich an, z.B. getArucoFunctionOne.cpp, getArucoFunctionTwo.cpp etc. zu schreiben. Nach etwas Arbeit können Sie ArUco direkt aus MATLAB heraus nutzen. Die Entwickler haben mich noch darauf hingewiesen, das wir nicht gegen highgui, videoio oder imgcodecs Libraries linken. Dinge wie 'imshow' aus openCV sind damit nicht verfügbar.


Quelle: Steve Schäfer, MathWorks Technical Support Department

Quelltext

Datei:Getaruco.cpp