2.9 XML和YAML文件的输入输出
对XML和YAML文件的进行串行读写,有两种数据结构可以用:
mappings(类似于STL map)和
element sequence(类似于STL vector)。
1. XML/YAML文件的打开和关闭:
OpenCV中的XML/YAML数据结构是
FileStorage类,使用FileStorage对象绑定文件。文件扩展名是
.xml或
.yaml,(实测.txt也可以)甚至于如果扩展名是.xml.gz的形式,可以直接写入压缩文件中。
string filename = "I.xml";
FileStorage fs(filename, FileStorage::WRITE);
\\...
fs.open(filename, FileStorage::READ);
fs.release();
打开文件方式有两种:使用FileStorage构造函数或者 open()函数。第二个参数指定操作类型,可以是: WRITE, READ, APPEND。
FileStorage对象销毁的时候文件会自动关闭,或者显式调用r
elease() 函数关闭文件。
2. 文本和数字的读写:
使用STL库中的 << 输出操作符
写文件。为了确定写入的数据结构类型,需要给出变量名。读文件用 << 输入操作符。使用 [ ] 操作符寻址,并将地址对应的值通过强制类型转换或者 >> 操作符读出。
fs << "iterationNr" << 100; // 写文件
int itNr;