使用filestorage读取用gz压缩的yaml文件时发生OpenCV异常

使用filestorage读取用gz压缩的yaml文件时发生OpenCV异常,opencv,compression,yaml,gzip,Opencv,Compression,Yaml,Gzip,当我使用FileStorage保存某个变量时,输出文件是一个9MB的yaml文件。我看到我们可以在文件名中添加“.gz”来压缩文件。结果文件为3.5MB。没关系。但是,当我试图使用filestorage打开myfile.yaml.gz文件进行追加时,我遇到了一个未处理的异常。你知道OpenCV是否支持这个吗?如果是,我应该如何读取该文件?如果没有,有没有建议轻松压缩/解压缩文件 下面是一个示例代码: std::vector<int> myArray; myArray.push_bac

当我使用
FileStorage
保存某个变量时,输出文件是一个9MB的yaml文件。我看到我们可以在文件名中添加“.gz”来压缩文件。结果文件为3.5MB。没关系。但是,当我试图使用filestorage打开myfile.yaml.gz文件进行追加时,我遇到了一个未处理的异常。你知道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();
std::vector myArray; myArray.push_back(0);myArray.push_back(1); FileStorage fs(“myFile.yaml.gz”,FileStorage::WRITE);
fs.gz选项中有某种讽刺意味。Yaml创建大但可读的文件。gz则相反。一个更明智的选择是首先创建更小的文件。谢谢MSalters。你在标题中的版本很好。我只是在寻找一种简单快捷的方法来保存时态数据,并且应用程序(而不是用户)可以轻松读取。所以我试着用压缩的方式使用yaml。