OpenCV学习笔记——FileStorage类 XML与YAML的操作

XML:eXtensible Markup Language "可扩展的标识语言",XML是一种元标记语言,开发者可以根据自身徐亚定义自己的标记,任何满足XML命名规则的名称都可标记,而且XML描述了文档的结构和语义,是一种语义/结构化的语言

YAML:YAML Ain't a Markup Language “YAML不是一种置标语言”,为了抢到语言是以数据为中心,而不是以置标语言为中心,可读性高,用来表达资料序列的格式,是一种试图用比XML更敏捷的方式完成XML所完成 的任务

利用XML和YAML是使用非常广泛的文件格式,用来进行文件存储和还原各式各样的数据结构

FileStorage类在Opencv中实现对两种文件的操作。

1、打开

 FileStorage::FileStorage()

 FileStorage::FileStorage(const String& filename, int flags, const String& encoding=String());
	FileStorage fs(".xml", FileStorage::WRITE);
	FileStorage fs;
	fs.open(".xml", FileStorage::READ);

2、写入文件用>>运算符,读出用<<符号

fs << "iterationNr" << 100;
	int itNr;
	fs["iterationNr"] >> itNr;
	itNr = (int)fs["iterationNr"];

3、对于vector结构的输入和输出,需要在一个元素前加上】,在最有一个元素前加上】;

对于Map文件,使用的是‘{’和‘}’;读取的时候会用到FileNode和FileNodeIterator数据结构

4、文件关闭会在FileStorage类销毁的时候自动进行,也可以显示调用其析构函数FileStorage::release()实现


你可能感兴趣的:(OpenCV,C++)