So speichern Sie einen Vektor von Schlüsselpunkten mit openCV

8

Ich habe mich gefragt, ob es möglich ist, einen Vektor von cv :: KeyPoints mithilfe der CvFileStorage-Klasse oder der cv :: FileStorage-Klasse zu speichern. Ist es auch der gleiche Prozess, um es wieder einzulesen?

Danke.

    
Seb 28.07.2011, 20:45
quelle

3 Antworten

7

Ich bin mir nicht sicher, was Sie wirklich erwarten: Der Code, den ich Ihnen zur Verfügung stelle, ist nur ein Beispiel, um zu zeigen, wie der Dateispeicher in den OpenCV C ++ - Bindungen funktioniert. Es wird hier angenommen, dass Sie in der XML-Datei alle Schlüsselpunkte separat schreiben, wobei deren Name ihre Position in dem Vektor ist, in dem sie gespeichert wurden.

Es nimmt auch an, dass wenn Sie sie zurücklesen, Sie die Anzahl von ihnen wissen, die Sie lesen möchten, wenn nicht, ist der Code ein bisschen komplizierter. Sie werden einen Weg finden (wenn Sie zum Beispiel den Dateispeicher lesen und testen, was er Ihnen gibt, wenn er Ihnen nichts gibt, dann bedeutet das, dass es keinen Sinn mehr zu lesen gibt) - es ist nur eine Idee, Sie müssen finden Sie eine Lösung, vielleicht wird dieser Code für Sie genug sein. Ich sollte präzisieren, dass ich ostringstream verwende, um den Integer in den String zu schreiben und nebenbei den Platz zu ändern, an dem er in die * .yml-Datei geschrieben wird.

%Vor%

Julien,

    
jmartel 29.07.2011, 06:12
quelle
7
%Vor%     
TheRisingEdge 10.02.2012 19:52
quelle
0
%Vor%

Geben Sie einen Buchstaben zB 'a' vor der Nummerierung ein, da das OPENCV XML Format den xml KEY mit einem Buchstaben beginnen soll.

Dies ist ein Code zum Speichern von Vector<Mat> für Visual Studio 2010, ich denke, dass es für Vector<KeyPoints>

funktioniert     
abeakre 05.12.2014 03:52
quelle

Tags und Links