opencv有关xml/yml/json帮助文档:opencv
下面是官方给出的一个示例,通过使用和修改来学习这方面的知识吧。
可以看到这个

创建一个新的VS工程,把代码复制进去,配置好opencv

点击调试->调试属性

调试->命令参数,填入一个yml文件

点击调试

生成yml文件,打开内容和我们程序内设置的一样

下面是源码:

/** filestorage_sample demonstrate the usage of the opencv serialization functionality*/#include "opencv2/core.hpp"
#include <iostream>
#include <string>using std::string;
using std::cout;
using std::endl;
using std::cerr;
using std::ostream;
using namespace cv;static void help(char** av)
{cout << "\nfilestorage_sample demonstrate the usage of the opencv serialization functionality.\n"<< "usage:\n"<<  av[0] << " outputfile.yml.gz\n"<< "\n   outputfile above can have many different extensions, see below."<< "\nThis program demonstrates the use of FileStorage for serialization, that is in use << and >>  in OpenCV\n"<< "For example, how to create a class and have it serialize, but also how to use it to read and write matrices.\n"<< "FileStorage allows you to serialize to various formats specified by the file end type."<< "\nYou should try using different file extensions.(e.g. yaml yml xml xml.gz yaml.gz etc...)\n" << endl;
}struct MyData
{MyData() :A(0), X(0), id(){}explicit MyData(int) :A(97), X(CV_PI), id("mydata1234"){}int A;double X;string id;void write(FileStorage& fs) const //Write serialization for this class{fs << "{" << "A" << A << "X" << X << "id" << id << "}";}void read(const FileNode& node)  //Read serialization for this class{A = (int)node["A"];X = (double)node["X"];id = (string)node["id"];}
};//These write and read functions must exist as per the inline functions in operations.hpp
static void write(FileStorage& fs, const std::string&, const MyData& x){x.write(fs);
}
static void read(const FileNode& node, MyData& x, const MyData& default_value = MyData()){if(node.empty())x = default_value;elsex.read(node);
}static ostream& operator<<(ostream& out, const MyData& m){out << "{ id = " << m.id << ", ";out << "X = " << m.X << ", ";out << "A = " << m.A << "}";return out;
}
int main(int ac, char** av)
{cv::CommandLineParser parser(ac, av,"{@input||}{help h ||}");if (parser.has("help")){help(av);return 0;}string filename = parser.get<string>("@input");if (filename.empty()){help(av);return 1;}//write{FileStorage fs(filename, FileStorage::WRITE);cout << "writing images\n";fs << "images" << "[";fs << "image1.jpg" << "myfi.png" << "baboon.jpg";cout << "image1.jpg" << " myfi.png" << " baboon.jpg" << endl;fs << "]";cout << "writing mats\n";Mat R =Mat_<double>::eye(3, 3),T = Mat_<double>::zeros(3, 1);cout << "R = " << R << "\n";cout << "T = " << T << "\n";fs << "R" << R;fs << "T" << T;cout << "writing MyData struct\n";MyData m(1);fs << "mdata" << m;cout << m << endl;}//read{FileStorage fs(filename, FileStorage::READ);if (!fs.isOpened()){cerr << "failed to open " << filename << endl;help(av);return 1;}FileNode n = fs["images"];if (n.type() != FileNode::SEQ){cerr << "images is not a sequence! FAIL" << endl;return 1;}cout << "reading images\n";FileNodeIterator it = n.begin(), it_end = n.end();for (; it != it_end; ++it){cout << (string)*it << "\n";}Mat R, T;cout << "reading R and T" << endl;fs["R"] >> R;fs["T"] >> T;cout << "R = " << R << "\n";cout << "T = " << T << endl;MyData m;fs["mdata"] >> m;cout << "read mdata\n";cout << m << endl;cout << "attempting to read mdata_b\n";   //Show default behavior for empty matrixfs["mdata_b"] >> m;cout << "read mdata_b\n";cout << m << endl;}cout << "Try opening " << filename << " to see the serialized data." << endl << endl;//read from string{cout << "Read data from string\n";string dataString ="%YAML:1.0\n""mdata:\n""   A: 97\n""   X: 3.1415926535897931e+00\n""   id: mydata1234\n";MyData m;FileStorage fs(dataString, FileStorage::READ | FileStorage::MEMORY);cout << "attempting to read mdata_b from string\n";   //Show default behavior for empty matrixfs["mdata"] >> m;cout << "read mdata\n";cout << m << endl;}//write to string{cout << "Write data to string\n";FileStorage fs(filename, FileStorage::WRITE | FileStorage::MEMORY | FileStorage::FORMAT_YAML);cout << "writing MyData struct\n";MyData m(1);fs << "mdata" << m;cout << m << endl;string createdString = fs.releaseAndGetString();cout << "Created string:\n" << createdString << "\n";}return 0;
}

opencv中xml/yml文件操作类相关推荐

  1. asp。net中常用的文件操作类

    ** 文件操作类 **/ #region 引用命名空间 using System; using System.Collections.Generic; using System.Text; using ...

  2. OpenCV中XML文件和YAML文件的读写

    OpenCV中XML文件和YAML文件的读写 代码如下: #include <opencv2/core/core.hpp> #include <iostream> #inclu ...

  3. java中的文件处理io_Java的IO前奏曲:文件操作类之___File

    Java的IO前奏曲:文件操作类之___File 在java.io包里面,File类是唯一一个与文件本身操作有关的类,但是不会涉及到文件本身的具体内容(包括文件创建,删除等操作) 代码中的注释有详细说 ...

  4. Java学习总结:41(文件操作类:File)

    Java文件操作类:File 在java.io包中,如果要进行文件自身的操作(例如:创建.删除等),只能依靠java.io.File类完成. File类的常用操作方法 No. 方法 类型 描述 1 p ...

  5. ASP.NET 文件操作类

    1.读取文件 2.写入文件 using System; using System.Collections.Generic; using System.IO; using System.Linq; us ...

  6. 【MFC】学习笔记:文件操作类——CFile

    01.目录 目录 01.目录 02.CFile类概述 03.CFile类成员函数 04.两个案例 4.1 实例1 4.2 实例2 05.CFile类总结 02.CFile类概述 如果你学过C语言,应该 ...

  7. Python中的File(文件)操作

    Python中的File(文件)操作 针对磁盘中的文件的读写.文件I/O I 输入(input) O输出(Output) 文件操作步骤:1.打开文件 2.读写文件 3.关闭文件 写入文件的操作:(把大 ...

  8. php文件写入生成文件,PHP 文件操作类(创建文件并写入) 生成日志

    欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 PHP 文件操作类(创建文件并写入) 生成日志 /** * 文件操作(生成日志)支持多条插入 * (如果插入多条语句并换行 ...

  9. php点击按钮创建文件,PHP 文件操作类(创建文件并写入) 生成日_php

    path = $path; } //判断操作方式 a追加写 if (! empty ( $mode )) { $this->mode = $mode; } //判断写入的内容 if (! emp ...

最新文章

  1. java ip包_java网络抓ip包 首部是个什么情况
  2. 大型EAI项目中的ORACLE 数据库管理(ZT)
  3. FFMpeg语法参数中文参考手册
  4. [BZOJ] 1712: [Usaco2007 China]Summing Sums 加密
  5. python递归遍历目录_Python实现递归遍历文件夹并删除文件
  6. 逗号,句号。问号?叹号!顿号、冒号:人名分隔·
  7. 如何实现手动指定AOP实现JDK代理模式到CGLIB的更改?
  8. 杭电ACM 第2007题
  9. 云栖·武汉峰会 | 现场:阿里云为何频打“自研”牌?
  10. (十)统计表速查(标准正态分布、t分布、卡方分布)
  11. Python瞎搞自学笔记
  12. 使用Python统计历年来各种英语高考题中单词的出现频数
  13. 如何在网上回复负面评论
  14. js加mysql写邮箱找回密码_邮箱找回密码 · woyong/docs Wiki · GitHub
  15. springMVC的大体结构及工作流程
  16. 大白话5分钟带你走进人工智能-第七节梯度下降之梯度概念和梯度迭代过程(2)
  17. 修改Oracle序列值
  18. java ajax 联动菜单_二级联动菜单代码(AJAX JAVA).
  19. Pentaho Data Integration(Kettle) 6.0
  20. 联想笔记本电脑键盘灯怎么开启_联想的键盘灯怎么开_联想笔记本键盘亮灯按哪个键-win7之家...

热门文章

  1. hashcode重复可能性探究
  2. 《调色师手册:电影和视频调色专业技法(第2版)》——调色师该何时介入?...
  3. SQL Server:分离和重新附加数据库
  4. vsftp安装与配置(通过虚拟用户登录)
  5. squid启动失败的解决办法
  6. 探寻《魔兽争霸3》中最不为人知的按键
  7. DAVID-GO-记录
  8. pandas-datareader
  9. TP、TN、FP、FN
  10. 推荐几个MySQL大牛的博客