C 怎么读取Cpp文件_opencv从yaml文件中读取矩阵(c++)
生活随笔
收集整理的這篇文章主要介紹了
C 怎么读取Cpp文件_opencv从yaml文件中读取矩阵(c++)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
PS:由于我是新手,因此記錄的比較羅里吧嗦,本文也屬于一個沒有任何技術(shù)的編程積累。
在SLAM系統(tǒng)中,經(jīng)常需要從配置文件中讀取參數(shù)文件,讀取整型,浮點型都是比較常見的操作,在讀取矩陣卡了一下,記錄一下讀取的注意事項。
為此我寫了一個測試文件,下面是各個文件的內(nèi)容。
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. 參數(shù)文件(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]重點:
2. 讀取bool變量時代碼也不能寫成如下形式,同時要注意參數(shù)文件中bool變量用0/1表示,不能用true/false(true/false都會返回1)
bool data_bool = file_settings["test_bool"]最后放一下運行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的C 怎么读取Cpp文件_opencv从yaml文件中读取矩阵(c++)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物流前沿理论与方法1
- 下一篇: C++内联函数(inline funct