zoukankan      html  css  js  c++  java
  • 基本的数据维持和存储

    Basic data persistence and storage

      在本文中,我们将探索OpenCV中存储和读取我们的数据的函数。在许多应用中,比如校准(calibration)或者机器学习,我们需要处理数据计算,就需要保存结果以备下一个执行阶段重新获取。为此,OpenCV提供了一个XML/YAML保持层(persistence layer)。

    1. 写入文件存储(Write to a file storage)

      要将OpenCV数据或者其它数值数据写入到一个文件中,我们可以使用FileStorage类,位于core模块中,可以使用类似STL中的流操作方式操作FileStorage对象。

     1 // FileStorage usage
     2 #include <opencv2/core.hpp>
     3 using namespace cv;
     4 
     5 #include <iostream>
     6 using namespace std;
     7 
     8 int main(int, char** argv)
     9 {
    10     // create our writter
    11     FileStorage fs("test.yml", FileStorage::WRITE);
    12     // Save an integer
    13     int fps = 5;
    14     fs << "fps" << fps;
    15     // Create some Mat sample
    16     Mat m1 = Mat::eye(2, 3, CV_32F);
    17     Mat m2 = Mat::ones(3, 2, CV_32F);
    18     Mat result = (m1 + 1).mul(m1 + 3);
    19     // write the result
    20     fs << "Result" << result;
    21     // release the file
    22     fs.release();
    23 
    24     FileStorage fsread("test.yml", FileStorage::READ);
    25     Mat r;
    26     fsread["Result"] >> r;
    27     cout << r << endl;
    28     fsread.release();
    29 
    30     return 0;
    31 }

    执行以上程序代码将会生成一个test.yml文件,文件内容如下所示:

    %YAML:1.0
    fps: 5
    Result: !!opencv-matrix
       rows: 2
       cols: 3
       dt: f
       data: [ 8., 3., 3., 3., 8., 3. ]
  • 相关阅读:
    第一周编程总结
    7-3 抓老鼠亏了还是赚了
    7-1 打印沙漏
    2019春第十二周作业
    2019春第十一周作业
    2019年春第十周作业
    第九周作业总结
    第八周作业总结
    第七周作业总结
    第六周作业
  • 原文地址:https://www.cnblogs.com/xiaomanon/p/5514272.html
Copyright © 2011-2022 走看看