yaml文件的读写

原创文章点击这里

1. yaml 文件的写入

#include <iostream>
#include<opencv2/opencv.hpp

int main()
{
    std::string p = "default2.yaml";

    //1.创建文件
	cv::FileStorage fwrite(p, cv::FileStorage::WRITE);

    //2.创建数据
	int a = 100;  
	float b = 100.1; 
    std::string c = "abc"; 
    cv::Mat d = cv::Mat::ones(3,3,CV_8U); 
    cv::Mat e = (cv::Mat_<double>(3,3) << 1000, 0, 320, 0, 1000, 240, 0, 0, 1);  

	//3.写入数据
	fwrite << "a" << a; // 写入 int
	fwrite << "b" << b; // 写入 float
	fwrite << "c" << c; // 写入 string
	fwrite << "d" << d; // 写入 cv::Mat
	fwrite << "e" << e; // 写入 cv::Mat
	fwrite << "title1" << "{"; // “{}”可以实现多级字典格式
	fwrite <<    "title1-1" << 100;
	fwrite <<    "title1-2" << 200;
	fwrite << "}";
	fwrite << "title2" << "["; // “{}”可以实现多级列表格式
	fwrite <<    "title2-1";
	fwrite <<    "title2-2";
	fwrite << "]";
	
	//4.关闭文件
	fwrite.release();

    return 0;
}
%YAML:1.0
a: 100
b: 100.1
c: abc
d: !!opencv-matrix
   rows: 3
   cols: 3
   dt: i
   data: [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
e: !!opencv-matrix
   rows: 3
   cols: 3
   dt: i
   data: [ 1000, 0, 320, 0, 1000, 240, 0, 0, 1 ]
title1:
   title1-1: 100
   title1-2: 200
title2:
   - title2-1
   - title2-2

2. yaml 文件的读取

#include <iostream>
#include<opencv2/opencv.hpp

int main()
{
    std::string p = "default2.yaml";

    //1.创建文件
	cv::FileStorage fread(p.c_str(), cv::FileStorage::READ); // FileStorage::APPEND 是追加
    if(!fread.isOpened())
		return 0 ;

    //2.数据
    int a;
	float b;
    char c;
    std::string d;
    cv::Mat e;
    cv::Mat f;  
    int title1_1;

    //3.读取数据
    fread["a"] >> a;
    fread["b"] >> b;
    fread["c"] >> c;
    fread["d"] >> d;
    fread["e"] >> e;
    fread["title1"]["title1-1"] >> title1_1;

    //4.关闭文件
    fread.release();

    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值