歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

OpenCV中存儲和讀取我們數據的函數

Basic data persistence and storage

  在本文中,我們將探索OpenCV中存儲和讀取我們的數據的函數。在許多應用中,比如校准(calibration)或者機器學習,我們需要處理數據計算,就需要保存結果以備下一個執行階段重新獲取。為此,OpenCV提供了一個XML/YAML保持層(persistence layer)。

1. 寫入文件存儲(Write to a file storage)

  要將OpenCV數據或者其它數值數據寫入到一個文件中,我們可以使用FileStorage類,位於core模塊中,可以使用類似STL中的流操作方式操作FileStorage對象。

// FileStorage usage
#include <opencv2/core.hpp>
using namespace cv;

#include <iostream>
using namespace std;

int main(int, char** argv)
{
    // create our writter
    FileStorage fs("test.yml", FileStorage::WRITE);
    // Save an integer
    int fps = 5;
    fs << "fps" << fps;
    // Create some Mat sample
    Mat m1 = Mat::eye(2, 3, CV_32F);
    Mat m2 = Mat::ones(3, 2, CV_32F);
    Mat result = (m1 + 1).mul(m1 + 3);
    // write the result
    fs << "Result" << result;
    // release the file
    fs.release();

    FileStorage fsread("test.yml", FileStorage::READ);
    Mat r;
    fsread["Result"] >> r;
    cout << r << endl;
    fsread.release();

    return 0;
}

執行以上程序代碼將會生成一個test.yml文件,文件內容如下所示:

%YAML:1.0
fps: 5
Result: !!opencv-matrix
  rows: 2
  cols: 3
  dt: f
  data: [ 8., 3., 3., 3., 8., 3. ]

OpenCV官方教程中文版(For Python) PDF  http://www.linuxidc.com/Linux/2015-08/121400.htm

Ubuntu Linux下安裝OpenCV2.4.1所需包 http://www.linuxidc.com/Linux/2012-08/68184.htm

Ubuntu 12.04 安裝 OpenCV2.4.2 http://www.linuxidc.com/Linux/2012-09/70158.htm

CentOS下OpenCV無法讀取視頻文件 http://www.linuxidc.com/Linux/2011-07/39295.htm

Ubuntu 12.04下安裝OpenCV 2.4.5總結 http://www.linuxidc.com/Linux/2013-06/86704.htm

Ubuntu 10.04中安裝OpenCv2.1九步曲 http://www.linuxidc.com/Linux/2010-09/28678.htm

基於QT和OpenCV的人臉識別系統 http://www.linuxidc.com/Linux/2011-11/47806.htm

[翻譯]Ubuntu 14.04, 13.10 下安裝 OpenCV 2.4.9  http://www.linuxidc.com/Linux/2014-12/110045.htm

OpenCV的詳細介紹:請點這裡
OpenCV的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved