OpenCV中可以使用FileStorage 对xml,yml等文本文件的读写。可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。YAML是一个可读性高,用来表达数据序列化的格式。
首先看一下fileStorage的构造函数和析构函数:
构造函数:
FileStorage::FileStorage(const String& filename,int flags,const String& encoding= String());
filename: 文件名称
flags:文件的打开模式,主要有以下几种:
READ: 以读的形式打开
WRITE:以写的形式打开
APPEND:以追加的形式打开
MEMORY: 从source 中读取数据或者写入数据到缓存中(通过FileStorage::release返回)
FORMAT_MASK: 格式化数据的掩码
FORMAT_AUTO : 自动格式化数据
FORMAT_XML: 将文件按照xml方式读写
FORMAT_YAML: 将文件按照yaml方式读写
FORMAT_JSON 将文件按照JSON方式读写
enconding: 文件的编码格式
析构函数:
FileStorage::~FileStorage()
几个重要的函数:
FileStorage::release() : 关闭文件
FileStorage::isOpened() :判断文件是否打开
FileStorage::Open(const String& filename,int flags,const String& encoding= String()) 与构造函数一样,将文件按照指定的格式以及编码打开。
operator>> : 重载运算符,将节点数据读入到某个变量中
operator<< : 将数据保存到某个节点中
operator[] : 取出某个节点的数据
以yaml文件为例
读写数据代码所示:
1 |
|
保存在test.yml的数据如下:
1 | %YAML:1.0 |