1. XML、YAML文件的打开和关闭
XML\YAML文件在中的为FileStorage,打开操作例如:
- string filename = "I.xml";
- FileStorage fs(filename, FileStorage::WRITE);
- \\...
- fs.open(filename, FileStorage::READ);
文件关闭操作会在FileStorage结构销毁时自动进行,但也可调用如下函数实现
- fs.release();
2.文本和数字的输入和输出
写入文件使用 << 运算符,例如:
- fs << "iterationNr" << 100;
读取文件,使用 >> 运算符,例如
- int itNr;
- fs["iterationNr"] >> itNr;
- itNr = (int) fs["iterationNr"];
3. OpenCV数据结构的输入和输出,和基本的C++形式相同
- Mat R = Mat_<uchar >::eye (3, 3),
- T = Mat_<double>::zeros(3, 1);
- fs << "R" << R; // Write cv::Mat
- fs << "T" << T;
- fs["R"] >> R; // Read cv::Mat
- fs["T"] >> T;
4. vector(arrays) 和 maps的输入和输出 vector要注意在第一个元素前加上“[”,在最后一个元素前加上"]"。例如:
- fs << "strings" << "["; // text - string sequence
- fs << "image1.jpg" << "Awesomeness" << "baboon.jpg";
- fs << "]"; // close sequence
对于map结构的操作使用的符号是"{"和"}",例如:
- fs << "Mapping"