|
|
Matlab Mex output von openCV |
|
Karl2k |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.06.2018, 13:30
Titel: Matlab Mex output von openCV
|
|
|
|
|
Moin,
ich benutze seit Kurzem Software für einen PMD Sensor. Das Framework ist in C++ geschrieben und ich möchte die Daten per MEX in Matlab nutzen können.
Dazu habe ich eine Mex-Funktion geschrieben, um hardwarenah die Sensordaten abgreifen zu können. Ich bin nun so weit, dass ich die Messdaten pro Frame als cv::Mat (openCV Typ) bekomme. Leider hänge ich nun an dem Punkt, diese in ein mxArray zu wandeln und dann per mexFunction zurückgeben zu können.
Den Tag über habe ich nichts nutzbares im Netz gefunden... die verständlichste Lösung sah so aus: https://stackoverflow.com/questions.....-without-copying-the-data
Leider bekomme ich nur eine Matrix mit vielen Nullen und wenigen (winzig kleinen) Werte als Antwort in Matlab.
Sieht nach nem typischen Daten-Kopie-Fehler in C++ aus, ich weiß nur nicht wie ich die Daten aus dem C-Code handhabbar exportiere.
Etwas Code:
Zum debuggen habe ich AmpImg als png speichern lassen nach allen Operationen, es ist an jeder Stelle noch Bildmaterial gespeichert.
Kann mir jemand weiterhelfen?
MfG
|
|
|
|
|
Karl2k |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.06.2018, 07:07
Titel:
|
|
Nach ewigem Versuchen habe ich es letztendlich doch hinbekommen: mexopencv hilft. Man muss nur beim Kompilieren der Librarys auf die korrekte Reihenfolge achten: v3.4.0 von opencv und opencv_contrib nutzen, erst opencv bauen, dann noch einmal zusätzlich mit den Zusatzmodulen aus opencV_contrib erstellen. Danach den Code von Matlab generieren lassen (DEBUG_TYPE entsprechend beachten) und zu guter Letzt in Visual Studio o.ä. einbinden/.obj linken. Dann lässt sich hier das MxArray(cv::Mat) nutzen, was ein OpenCV cv::Mat-Bildcontainer direkt und äußerst komfortabel in ein mxArray der Matlab Struktur umwandelt. Datentypen werden automatisch gesetzt, Dimensionierung muss nicht angegeben werden.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|