今天学习一下Opencv中一个用处很广泛的功能,xml/yml 格式文件的输入和输出,这在特征,算法参数等数据类型的保存和载入中肯定需要用到,掌握opencv中文件的输入输出类,会使这一个过程十分简单愉快。当然文件的输入输出功能用处很广,有待大家去挖掘。对应的例程是 (TUTORIAL) file_input_output
先来看下程序的运行结果,这里我们设置的xml输出路径为 f:\image_set\test.xml
可以看出,例程先将数据写入到文件中,然后再从文件中读出数据,并打印出来。下面具体看下是怎么操作的。
{ //write
Mat R = Mat_<uchar>::eye(3, 3),
T = Mat_<double>::zeros(3, 1);
MyData m(1);
FileStorage fs(filename, FileStorage::WRITE); // 构造一个 FileStorage对象,只提供写操作
fs << "iterationNr" << 100;
fs << "strings" << "["; // text - string sequence // 用 [ ] 作为字符串的输入开始和结束标记
fs << "image1.jpg" << "Awesomeness" << "baboon.jpg";
fs << "]"; // close sequence
fs << "Mapping"; // text - mapping // 用 { }作为map 索引的输入开始和结束标记
fs << "{" << "One" << 1;
fs << "Two" << 2 << "}";
fs << "R" << R; // cv::Mat // 输出Mat,“R”作为Mat的名称
fs << "T" << T;
fs << "MyData" << m; // your own data structures //