歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> OpenCV中存儲和讀取我們數據的函數

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

日期:2017/3/1 9:15:51   编辑:Linux編程

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