PS:由于我是新手,因此记录的比较罗里吧嗦,本文也属于一个没有任何技术的编程积累。

在SLAM系统中,经常需要从配置文件中读取参数文件,读取整型,浮点型都是比较常见的操作,在读取矩阵卡了一下,记录一下读取的注意事项。

为此我写了一个测试文件,下面是各个文件的内容。

1.CMakeLists.txt文件

cmake_minimum_required(VERSION 2.8)
project(read_from_yaml)set( CMAKE_CXX_FLAGS "-std=c++11 -march=native -O3" )
############### OpenCV dependencies ######################
find_package( OpenCV 3 REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )add_executable(read_yaml_mat read_yaml_mat_test.cpp)
target_link_libraries(read_yaml_mat ${OpenCV_LIBS})

2.c++主文件(read_yaml_mat_test.cpp)

//
// Created by weihao on 2020/6/3.
//
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;// Main function
int main(int argc, char** argv)
{if(argc != 2){cerr << endl << "Usage: ./read_yaml_mat path_to_settings" << endl;return 1;}// read config filecv::FileStorage file_settings(argv[1], cv::FileStorage::READ);std::cout << "config file path: " << argv[1] << std::endl;// read camera instrincint test_data = file_settings["test_data"];std::cout << "test data :" << test_data << std::endl;// read bool valuebool test_bool;file_settings["test_bool"] >> test_bool;std::cout << "test_bool :" << test_bool << std::endl;// read OpenCV Matcv::Mat cam_k;file_settings["cam_k"] >> cam_k;std::cout << "camera instrinc matrix :" << std::endl << cam_k << std::endl;return 0;
}

3. 参数文件(read_mat.yaml)

%YAML:1.0
test_data: 10
test_bool: 0
cam_k: !!opencv-matrixrows: 3cols: 3dt:   udata: [6, 2, 2, 2, 6, 2, 2, 2, 6]

重点:

  1. 矩阵读取时代码不能写成如下形式(类型无法转换,无法编译)
 cv::Mat cam_k = file_settings["cam_k"]

2. 读取bool变量时代码也不能写成如下形式,同时要注意参数文件中bool变量用0/1表示,不能用true/false(true/false都会返回1)

 bool data_bool = file_settings["test_bool"]

最后放一下运行结果:

C 怎么读取Cpp文件_opencv从yaml文件中读取矩阵(c++)相关推荐

  1. Opencv——写入或读取数据到XML或YAML文件

    什么是XML.YAML文件 XML(eXtensible Markup Language)是一种元标记语言.所谓"原标记",就是开发者可以根据自身需要定义的标记,任何满足XML命名 ...

  2. navicat运行db文件_使用 YAML 文件配置 Jenkins 流水线

    本文转载自:Jenkins 中文社区 这也是一种自定义流水线 DSL 的方法 几年前,我们的 CTO 写了一篇关于 使用 Jenkins 和 Docker 为 Ruby On Rails 应用提供持续 ...

  3. yaml文件里引用yaml文件

    a.yaml文件内容: a: 1 b: - 2 - 3 c: !include b.yaml b.yaml文件内容: - 10 - [100, 200, 300] python代码 # 基于类的解决方 ...

  4. matlab中读文件的行数_Matlab中读取txt文件的几种方法

    Matlab中读取txt文件的几种方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如test.txt文件,内容为"17.901 -1.1 ...

  5. python读取多行json_如何在Python中读取包含多个JSON对象的JSON文件?

    所以这是在python中读取JSON文件的标准方法 import json from pprint import pprint with open('ig001.json') as data_file ...

  6. java读文件几种方式_java中读取文件的方式有哪几种

    java中读取文件的方式有哪几种 发布时间:2020-06-19 13:36:48 来源:亿速云 阅读:135 作者:鸽子 读取文件有多种方式,基于传统的输入流方式或基于nio的Buffer缓冲对象和 ...

  7. matlab分析xml文件_如何在Java中读取XML文件(DOM分析器)

    matlab分析xml文件 Today we will learn how to read the XML file in Java. We will also learn how to parse ...

  8. 打包部署后无法读取jar包里的文件(实测可行,Java中读取jar包中的文件)

    打包部署后无法读取jar包里的文件 Java中读取jar包中的文件 linux中无法读取jar包中的内容(windows可以的!),如何解决 一.背景 项目中免不了需要读取文件,如果文件用绝对路径读取 ...

  9. java读取hadoop数据_从Hadoop URL中读取数据_hadoop 数据读取_hadoop读取文件

    3.5  Java接口 在本小节,我们要深入探索Hadoop的Filesystem类:与Hadoop的文件系统交互的API. 虽然我们主要关注的是HDFS的实现DistributedFileSyste ...

最新文章

  1. Facebook爆锤深度度量学习:该领域13年来并无进展!网友:沧海横流,方显英雄本色...
  2. 视频直播/远程会议中的AI关键技术探索应用
  3. 2012年第一篇博文——致谢:2011年中国IT十大杰出博客获奖感言
  4. xml语言与html,XML与HTML的分析处理
  5. php 打乱数组顺序_PHP实现大转盘抽奖算法
  6. Open vSwitch 概述
  7. 中职计算机应用基础微课获奖视频,浅谈微课在中职计算机应用基础教学中的应用...
  8. poj 1986 Distance Queries LCA
  9. 创新工场面试题——输出螺旋矩阵
  10. 企业微信应用设置可信域名_企业微信更新版本 全平台内容可设置成英文
  11. PSS E v33.40 1CD(大型电力系统仿真计算软件)
  12. ElasticSearch
  13. 使用QT绘图控件QCustomPlot绘制波形图
  14. 左程云 Java 笔记--图
  15. 检查dota2服务器是否在线,dota2服务器ping测试脚本分享
  16. linux系统重装win10系统不用u盘,win10不用u盘怎么重装系统
  17. 像素、英寸、厘米之间的换算关系
  18. 如何通过Matplotlib画圆
  19. python函数体里的if...else...与return语句
  20. (自用随笔)PAT A1010

热门文章

  1. java实现无序数组结构
  2. 1.10-linux三剑客之sed命令详解及用法
  3. Python中集合(set)的操作及一些比较常见的用法
  4. Android2.2 API 中文文档系列(3) —— AccessibilityService
  5. js 数组遍历for..in弊端
  6. smarty二维foreach示例[顺代一维数组],再次加强版
  7. 通才与专家_那么您准备聘请数据科学家了吗? 通才还是专家?
  8. 数据分析 绩效_如何在绩效改善中使用数据分析
  9. 1816. 截断句子
  10. 查找满足断言的第一个元素