いくつかの変数を使用して保存したときの出力ファイルFileStorage
は、9MB の yaml ファイルです。ファイルを圧縮するには、ファイル名に「.gz」を追加するだけでよいことがわかりました。結果のファイルは 3.5MB です。それは大丈夫です。しかし、filestorage を使用して myfile.yaml.gz ファイルを開いて APPEND しようとすると、未処理の例外が発生します。OpenCVがこれをサポートしているかどうか知っていますか? はいの場合、ファイルをどのように読み取る必要がありますか? そうでない場合、ファイルを簡単に圧縮/解凍するための提案はありますか?
サンプルコードは次のとおりです。
std::vector<int> myArray;
myArray.push_back(0); myArray.push_back(1);
FileStorage fs("myFile.yaml.gz", FileStorage::WRITE);
fs << "myArrayName" << myArray;
fs.release();
myArray.clear();
fs = FileStorage("myFile.yaml.gz", FileStorage::APPEND);
fs << "intValue" << 3;
fs.release();
fs = FileStorage("myFile.yaml.gz", FileStorage::READ);
fs["myArrayName"] >> myArray;
fs.release();