OpenCVはFileStorageを用いるMatデータを保存する.
1768 ワード
この文書はhttp://blog.csdn.net/mmjwung/article/details/6913540
OpenCV 2.0以降のバージョンでは、C++へのサポートが追加され、プログラムコード量が大幅に減少し、プログラムの作成が容易になり、現代のプログラミング思想にも合致しています.
視覚処理の過程で、中間データを保存する必要があることが多い.これらのデータのデータ型は整数ではないことが多い.
OpenCVのC++インタフェースでは、画像を保存するためのimwriteは整数データしか保存できず、画像フォーマットとして必要です.浮動小数点データまたはXML/YMLファイルを保存する必要がある場合、OpenCVのC言語インタフェースはcvSave関数を提供しますが、この関数はC++インタフェースで削除されています.代わりにFileStorageクラスです.
具体的な使い方はこの例を参照してください.
マトリックスストレージ
[cpp] view plain copy print ?
Mat mat = Mat::eye(Size(12,12), CV_8UC1); FileStorage fs(".\\vocabulary.xml", FileStorage::WRITE);
fs<<"vocabulary"< fs.release();
別の場所では、このマトリクスデータをロードする必要があります.コードは次のとおりです.
[cpp] view plain copy print ?
FileStorage fs(".\\vocabulary.xml", FileStorage::READ); Mat mat_vocabulary;
fs["vocabulary"] >> mat_vocabulary;データを読み込むとき、[]の内容は指定されたラベルで、>>の変数にデータを読み込みます.
OpenCV 2.0以降のバージョンでは、C++へのサポートが追加され、プログラムコード量が大幅に減少し、プログラムの作成が容易になり、現代のプログラミング思想にも合致しています.
視覚処理の過程で、中間データを保存する必要があることが多い.これらのデータのデータ型は整数ではないことが多い.
OpenCVのC++インタフェースでは、画像を保存するためのimwriteは整数データしか保存できず、画像フォーマットとして必要です.浮動小数点データまたはXML/YMLファイルを保存する必要がある場合、OpenCVのC言語インタフェースはcvSave関数を提供しますが、この関数はC++インタフェースで削除されています.代わりにFileStorageクラスです.
具体的な使い方はこの例を参照してください.
マトリックスストレージ
[cpp] view plain copy print ?
Mat mat = Mat::eye(Size(12,12), CV_8UC1);
fs<<"vocabulary"<
Mat mat = Mat::eye(Size(12,12), CV_8UC1);
FileStorage fs(".\\vocabulary.xml", FileStorage::WRITE);
fs<<"vocabulary"<<mat;
fs.release();
別の場所では、このマトリクスデータをロードする必要があります.コードは次のとおりです.
[cpp] view plain copy print ?
FileStorage fs(".\\vocabulary.xml", FileStorage::READ);
fs["vocabulary"] >> mat_vocabulary;
FileStorage fs(".\\vocabulary.xml", FileStorage::READ);
Mat mat_vocabulary;
fs["vocabulary"] >> mat_vocabulary;
データを格納する場合、fs<<「vocabulary」<