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

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"]

最后放一下运行结果:

550ff56957f1c9c9515792d2f12015a3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.SFB标准版前端安装

SFB服务器准备部分&#xff1a;1.修改服务器名称&#xff0c;sfb加入域&#xff0c;用域管理员账户登录2.配置服务器IP地址&#xff0c;DNS3.安装Windows组件Add-WindowsFeature NET-Framework-Core, RSAT-ADDS, Windows-Identity-Foundation, Web-Server, Web-Static-Content,…

向spark standalone集群提交任务

文档链接 #切换到spark安装目录,执行下面一条命令,192.168.0.10是master的ip, examples/src/main/python/pi.py 是python 文件的路径 ./bin/spark-submit --master spark://192.168.0.106:7077 examples/src/main/python/pi.py任务已经执行完毕,耗时10秒 转载于:https://www.c…

python excelwriter保存路径_Python和Excel 终于可以互通了!!

点击“开发者技术前线”&#xff0c;选择“星标&#x1f51d;”在看|星标|留言, 真爱作者&#xff1a;小天真_5eed 链接&#xff1a;https://www.jianshu.com/p/6ecf414f3372今天为大家分享一篇使用python将大量数据导出到Excel中的技巧心得&#xff0c;可以让Python和Excel…

MySQL 导出数据

2019独角兽企业重金招聘Python工程师标准>>> 1、导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 存放位置比如&#xff1a; mysqldump -u root -p project > c:/a.sql 2.导出一个表的结构&#xff0c;并且带表中的数据 mysqldump -u 用户名 -p 数据库名 …

单片机STM8S测量电压电路_单片机电路设计中的10个难点

单片机是嵌入式系统的核心元件&#xff0c;使用单片机的电路要复杂得多&#xff0c;但在更改和添加新功能时&#xff0c;带有单片机的电路更加容易实现&#xff0c;这也正是电器设备使用单片机的原因。那么在单片机电路的设计中需要注意的难点有哪些&#xff1f;嵌入式ARM开发 …

oracle ebs 数据源,Oracle EBS环境下查找数据源(Form篇)

关于在Oracle EBS环境下如何查找数据源的文章几年前就已经开始整理&#xff0c;但是其中关于OAF方面的一直没有整理&#xff0c;导致这份文档一直残缺不全&#xff0c;有很多次同事都向我索要相关文档都未能如愿以偿&#xff0c;新的一届培训工作再次启动&#xff0c;为了自己也…

linux 实用指令

通过init 来制定/切换不同的运行指令 查看linux 系统下&#xff0c;电脑的运行级别 vim /etc/inittab 如何找回丢失的root密码&#xff1f; 进入到单用户模式&#xff0c;然后修改root密码 进入到单用户模式&#xff0c;root不需要密码也可以登录 如果开机就是init 0 办法&…

chrome控制台如何把vw显示成px_【CSS】rem,em,px的区别和使用场景

前端潮咖点击上面蓝字&#xff0c;关注我们&#xff01;关注关注前端潮咖&#xff0c;每日精选好文作者&#xff1a;大前端小菜鸟来源&#xff1a;cnblogs.com/hyns/p/12380944.html作rem布局原理深度理解(以及em/vw/vh)一、前言我们h5项目终端适配采用的是淘宝那套《Flexible实…

php7对象转换成数组,php 如何把对象转换成数组对象

php把对象转换成数组对象的方法&#xff1a;首先打开相应的PHP代码文件&#xff1b;然后通过“function array_to_object($arr){...}”方法把对象转换成数组即可。本文操作环境&#xff1a;windows7系统、PHP7.1版&#xff0c;DELL G3电脑php-对象(object) 与 数组(array) 的转…

建模:建模清单

ylbtech-建模&#xff1a;建模清单1.返回顶部 2.返回顶部3.返回顶部4.返回顶部5.返回顶部 6.返回顶部作者&#xff1a;ylbtech出处&#xff1a;http://ylbtech.cnblogs.com/本文版权归作者和博客园共有&#xff0c;欢迎转载&#xff0c;但未经作者同意必须保留此段声明&#xf…

获得picker选项的当前年月值_如果你用OPPO手机!千万记得开启开发者选项,手机性能大幅度提升...

如果你用OPPO手机&#xff01;千万记得开启开发者选项&#xff0c;手机性能大幅度提升用过OPPO手机的用户都知道&#xff0c;手机使用1-2年都会出现卡顿的情况。这也是安卓手机的通病&#xff0c;但也有很多朋友手机使用3年也不会出现卡顿的现象&#xff0c;都是因为打开了手机…

Django运维后台的搭建之四:用bootstrap模板让运维前台变得更漂亮

我对于PHP和ajax是属于二把刀的水平&#xff0c;所以做网页前端肯定是比上天还难&#xff0c;但是我又想把网页做的漂亮可爱&#xff0c;怎么办呢&#xff1f;我就只好去download别人的模板&#xff0c;在这里我使用了bootstrap框架做的模板。各位可以去https://wrapbootstrap.…

联想m7400pro更换墨粉盒怎么清零_佳能打印机怎么换墨水 佳能打印机换墨水注意事项【详解】...

佳能打印机是我们办公室用品中比较常见的一个品牌&#xff0c;作为国际知名品牌&#xff0c;其质量也是非常有保障的。在使用的时候打印机没有墨是经常会遇见的。这时候我们就需要更换墨水盒了。但很多不知道具体步骤&#xff0c;或者没有注意相关细节&#xff0c;导致换墨水盒…

MySQL Workbench导出数据库

步骤&#xff1a; 1. 打开mysql workbench&#xff0c;进入需要导出的数据库&#xff0c;点击左侧栏的【Management】tab键。 2. 点选要输出的数据库 点击【Data Export】选在要输出的数据库选择是否输出存储过程和函数&#xff0c;事件&#xff0c;触发器 点击Start Export3. …

软链接与硬链接

文件引用模型 在linux中&#xff0c;一切皆文件&#xff0c;而文件包含元数据&#xff08;metedata&#xff09;和用户数据&#xff08;user data&#xff09;。元数据中的inode号是系统标识和获取用户数据的唯一凭证&#xff0c;而文件名仅是为了方便用户记忆和使用。为了管理…

c++ 数组的输入遇到特定字符停止输入_C语言 第4章-字符串和格式化输入/输出

#include 用数组name储存字符串&#xff0c;name数组有40个字节&#xff0c;每个字节储存一个字符值。在scanf()函数中&#xff0c;输入字符串name没有&前缀。C预处理器把字符常量DENSITY定义为62.4。strlen()获取字符串长度。1. 字符串1.1. char类型数组双引号标记字符串&…

Python基础 day2

Python基础 一、Python的数据类型 1、int(整型) 在32位机器上&#xff0c;整数的位数为32位&#xff0c;取值范围为-2**31&#xff5e;2**31-1&#xff0c;即-2147483648&#xff5e;2147483647&#xff0c;而.在64位系统上&#xff0c;整数的位数为64位&#xff0c;取值范围为…

gym101808 E

提问&#xff1a;我是什么品种的傻逼&#xff1f; 哇看到积水兴高采烈啊。然后就走上了一条不归路。 为什么不归呢&#xff0c;因为我这个法子就是不对的&#xff0c;我总是在想很多很多点围成的一块区域&#xff0c;然后求这一块区域的面积。 然后尝试了各种扫描方法&#xff…

【站点部署】解析二级域名并部署站点

开设原因 : 近期在学健身, 上一份工作辞掉后, 在北京找了家私人教练培训学校, 进行为期四个月的健身培训, 这个比在健身房找私教专业多了, 被健身房私人教练坑慘了, 说多了都是泪, 已经培训了将近一个半月, 学习了基础私教, 普拉提, 这在学习康复课程, 之后还有功能性 和 综合格…

恶意软件伪装“正规军”,撕开Booster Cleaner“画皮”下的真相

经常使用手机浏览器阅读小说的用户都知道&#xff0c;在浏览器页面经常会出现一些推广游戏应用、手机清理应用等应用的弹窗广告。有时出于方便&#xff0c;我们也会选择直接点开这些弹窗广告进行应用下载。但这种行为并不安全&#xff0c;部分恶意应用会先伪装成“正规军”诱导…