Konvertieren einer MAT-Datei von MATLAB in cv :: Mat Matrix in OpenCV

8

Ich habe etwas MATLAB-Code, den ich nach OpenCV migrieren möchte. Die Daten, die der MATLAB-Code verwendet, werden in einer .mat-Datei gespeichert, die dann zur Laufzeit geladen wird.

Ich habe diese .mat-Datei in eine .csv-Datei konvertiert und lese diese Daten dann als String mit ifstream in OpenCV. Ich habe Probleme, diese Zeichenfolge in eine Datenstruktur zu konvertieren, die ich dann in OpenCV verwenden kann.

Gibt es trotzdem, dass ich die .mat Datei / .csv Datei in eine Mat Datenstruktur in OpenCV konvertieren kann?

Bearbeiten: Basierend auf der Antwort, die ich erhalten habe, konnte ich MATLAB-Daten mit einer YML-Datei in OpenCV lesen. Dies habe ich in einer MAC-Umgebung gemacht. Wenn ich jedoch versuche, die Datei mit demselben Code in einer Windows-Umgebung zu lesen, wird die Datei nicht gelesen. Ich frage mich nur, ob jemand auf ein solches Problem stieß. Unten ist mein Codeausschnitt:

%Vor%     
Sid 18.07.2012, 20:44
quelle

3 Antworten

14
___ qstnhdr ___ Konvertieren einer MAT-Datei von MATLAB in cv :: Mat Matrix in OpenCV ___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ answer42842057 ___

Sie können die Matlab-Bridge von opencv contrib verwenden. Alles, was Sie von Opencv Contrib benötigen, ist, den Ordner contrib / modules / matlab / include / opencv2 / matlab in den Ordner include / opencv2 zu kopieren.

zusammen mit der Matlab Compiler-Laufzeit (nur libmx.lib, libmex.lib und libmat.lib) ).

%Vor%     
___ answer32793279 ___

Neben den von @Drodbar vorgeschlagenen XML / YAML-Dateispeichern können Sie auch cvmatio ausprobieren, das über APIs direkt MATLAB lädt MAT-Dateien zu OpenCV.

Der Code wird einfach wie folgt aussehen:

%Vor%     
___ tag123matrix ___ In der Mathematik ist eine Matrix (mehrere Matrizen) eine rechteckige Anordnung von Zahlen, Symbolen oder Ausdrücken, die in Zeilen und Spalten angeordnet sind. Die einzelnen Elemente in einer Matrix heißen ihre Elemente oder Einträge. ___ tag123matlab ___ MATLAB ist eine von MathWorks entwickelte Hochsprachen- und interaktive Programmierumgebung für numerische Berechnungen und Visualisierung. Fragen sollten entweder mit [tag: matlab] oder [tag: oktave] versehen werden, aber nicht mit beiden, es sei denn, die Frage bezieht sich explizit auf beide Pakete. Wenn Sie dieses Tag verwenden, erwähnen Sie bitte die MATLAB-Version, mit der Sie arbeiten (z. B. R2017a). ___ tag123opencv ___ OpenCV (Open Source Computer Vision) ist eine plattformübergreifende Bibliothek von Programmierfunktionen für die Echtzeit-Bildverarbeitung. Es wurde 1999 offiziell von Intel ins Leben gerufen und wird nun von Itseez unterstützt. Verwendet werden: Mensch-Computer-Interaktion; Objektidentifikation, Segmentierung und Erkennung; Gesichtserkennung; Gestenerkennung; Bewegungsverfolgung, Bewegung Verständnis; Stereo- und Multikamera-Kalibrierung und Tiefenberechnung; Mobile Robotik. ___ tag123io ___ Bei der Berechnung bezieht sich die Eingabe / Ausgabe oder E / A auf die Kommunikation zwischen einem Informationsverarbeitungssystem (z. B. einem Computer) und der Außenwelt, möglicherweise einem Menschen, oder einem anderen Informationsverarbeitungssystem. ___ qstntxt ___

Ich habe etwas MATLAB-Code, den ich nach OpenCV migrieren möchte. Die Daten, die der MATLAB-Code verwendet, werden in einer .mat-Datei gespeichert, die dann zur Laufzeit geladen wird.

Ich habe diese .mat-Datei in eine .csv-Datei konvertiert und lese diese Daten dann als String mit ifstream in OpenCV. Ich habe Probleme, diese Zeichenfolge in eine Datenstruktur zu konvertieren, die ich dann in OpenCV verwenden kann.

Gibt es trotzdem, dass ich die .mat Datei / .csv Datei in eine Mat Datenstruktur in OpenCV konvertieren kann?

Bearbeiten: Basierend auf der Antwort, die ich erhalten habe, konnte ich MATLAB-Daten mit einer YML-Datei in OpenCV lesen. Dies habe ich in einer MAC-Umgebung gemacht. Wenn ich jedoch versuche, die Datei mit demselben Code in einer Windows-Umgebung zu lesen, wird die Datei nicht gelesen. Ich frage mich nur, ob jemand auf ein solches Problem stieß. Unten ist mein Codeausschnitt:

%Vor%     
___
Drodbar 19.07.2012, 13:05
quelle
1

Sie können die Matlab-Bridge von opencv contrib verwenden. Alles, was Sie von Opencv Contrib benötigen, ist, den Ordner contrib / modules / matlab / include / opencv2 / matlab in den Ordner include / opencv2 zu kopieren.

zusammen mit der Matlab Compiler-Laufzeit (nur libmx.lib, libmex.lib und libmat.lib) ).

%Vor%     
John G. Waggenspack 16.03.2017 18:25
quelle
0

Neben den von @Drodbar vorgeschlagenen XML / YAML-Dateispeichern können Sie auch cvmatio ausprobieren, das über APIs direkt MATLAB lädt MAT-Dateien zu OpenCV.

Der Code wird einfach wie folgt aussehen:

%Vor%     
herohuyongtao 26.09.2015 03:17
quelle

Tags und Links