OpenCV之XML和YAML文件读写
FileStorage 类
该类有两个构造函数
1 | FileStorage::FileStorage() |
准备
写
对应第一种方法
1 | FileStorage fs; |
对应第二种方法
1 | FileStorage fs("abc.xml", FileStorage::WRITE); |
读
第一种方式
1 | FileStorage fs("abc.xml", FileStorage::READ); |
第二种方式
1 | FileStorage fs; |
读写
可用”<<”运算符进行写操作
1 | fs << "iterationNr" << 100; |
用”>>”运算符进行读操作
1 | int itNr; |
数据结构输入输出
OpenCV 数据结构的输入和输出,和基本的 C++形式相同
1 | // 数据结构初始化 |
vector(arrays) 和 maps 的输入输出
对于 vector 结构的输入和输出,要注意在第一个元素前加上“[”,在最后一个元素后加上“]”。
1 | fs << "strings" << "["; //开始读入string文本序列 |
对于 map 结构的操作,使用的符号是“{” 和 “}”
1 | fs << "Mappimg"; //开始读入mapping文本 |
读取这些结构的时候会用到 FileNode 和 FileNodeIterator 数据结构。对 FileStorage 类的“[“ 、 “]”操作符会返回 FileNode 数据结构;对于一连串的 node 可以使用 FileNodeIterator 结构。
1 | FileNode n = fs["strings"]; //读取字符串序列以得到节点 |
文件关闭
文件关闭操作会在 FileStorage 类销毁时自动进行,但也可以显示调用其析构函数 FileStorage::release()实现。FileStorage::release()函数会析构掉 FileStorage 类对象,同时关闭文件。
1 | fs.release(); |
本文作者 : HeoLis
原文链接 : https://ishero.net/OpenCV%E4%B9%8BXML%E5%92%8CYAML%E6%96%87%E4%BB%B6%E8%AF%BB%E5%86%99.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
学习、记录、分享、获得