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()实现