1、XML和YAML文件简介
XML文件是一种元标记语言,即开发者可以根据自身需要定义自己的标记。它是一种语义和结构语言,描述了文档的语义和结构。
YAML以数据为中心,是一个可读性高,用来表达资料序列的格式。.yml和.yaml为YAML文件的后缀名。
YAML试图用一种比XML更敏捷的方式来完成XML所完成的任务。
2、FileStorage类操作文件
一般使用如下过程来写入或者读取数据到XML或YAML文件中
(1)实例化一个FileStorage类的对象,用默认带参数的构造函数完成初始化,或者用FileStorage::open()成员函数辅助初始化
(2)使用流操作符<<进行文件写入操作,或者>>进行文件读取操作
(3)使用FileStorage::release()函数析构掉FileStorage类对象,同时关闭文件
下边对2中三个步骤进行示例讲解
【第一步】XML、YAML文件的打开
(1)准备文件写操作
FileStorage是OpenCV中XML和YAML文件的存储类,封装了所有相关的信息。是OpenCV从文件中读取数据或向文件中写入数据时必须要使用的一个类。
构造函数为FileStorage::FIleStorage,有两个重载:
FIleStorage::FileStorage()
FIleStorage::FileStorage(const string& source, int flags, const string& encoding=string())
对于第一种不带参数的构造函数,可以使用成员函数FileStorage::open进行数据写操作:
FileStorage fs;
fs.open("abc.xml", FileStorage::WRITE);
对于第二种带参数的构造函数,进行写操作:
fs.open("abc.xml", FileStorage::WRITE);
(2)准备文件读操作
采用FileStorage::READ标识符进行读操作:
第一种方式: