OpenCV3 之 XML和YAML檔案的輸入輸出

2021-10-01 01:53:28 字數 2799 閱讀 7702

step2 檔案的讀寫操作

vector(arrays)和maps的讀寫

step3 檔案的關閉

3.例程

xml和yaml可以用來儲存和還原各種各樣的資料結構。

與通常的檔案操作類似。

例項化乙個filestorage類的物件,用預設帶引數的建構函式完成初始化,或者用filestorage::open()成員函式輔助初始化。

此類的建構函式有如下兩個過載:

filestorage::

filestorage()

;filestorage::

filestorage

(const string& source,

int flags,

const string& encoding=

string()

);

通過此類可以在初始化的時候直接指定檔案的讀/寫。

// 方式1:

filestorage fs

("abc.xml"

, filestorage::read)

;// 方式2:

filestorage fs;

fs.open

("abc.xml"

,filestorage::read)

;

// 方式1:

filestorage fs

("abc.xml"

, filestorage::write)

;// 方式2:

filestorage fs;

fs.open

("abc.xml"

,filestorage::write)

;

寫入資料
fs <<

"iterationnr"

<<

100;

mat r = mat_

::eye(3

,3);

fs <<

"r"<< r;

讀取資料
int itnr;

fs["iterationnr"

]>> itnr;

itnr =

(int

) fs[

"iterationnr"];

//----------------------------------------

fs["r"

]>> r;

① 對於vector結構的輸入/輸出,需要在第乙個元素前加"[",在最後乙個元素後加"]";對於map結構,使用的是""

"";② 讀取這些結構時需要用到filenode("["、"]"此類的操作符會返回該資料型別)和filenodeiterator(對於一連串的node)資料結構。

filenode n = fs[

"strings"];

//讀取字串序列以得到節點

if(n.

type()

!= filenode::seq)

filenodeiterator it = n.

begin()

, int_end = n.

end();

for(

; it != it_end;

++it)

cout <<

(string)

*it << endl;

fs.

release()

;

#include

#include

using

namespace std;

using

namespace cv;

intmain()

";mat t;

fs.open

("abc.yaml"

, filestorage::read)

; fs[

"r"]

>> t;

cout << t << endl;

filenode n = fs[

"strings"];

//讀取字串序列以得到節點

if(n.

type()

!= filenode::seq)

filenodeiterator it = n.

begin()

, it_end = n.

end();

for(

; it != it_end;

++it)

cout <<

(string)

*it << endl;

fs.release()

;system

("pause");

return0;

}

參考書籍《opencv3程式設計入門》

opencv3程式設計入門

今天進行了簡單的影象修補 影象修補.cpp 先對影象進行破壞,然後進行修補 include stdafx.h include include include includeusing namespace std using namespace cv define win name1 原始圖 defi...

OPENCV3 模版匹配

一 引言 模板匹配的作用在影象識別領域作用可大了。那什麼是模板匹配?模板匹配,就是在一幅影象中尋找另一幅模板影象最匹配 也就是最相似 的部分的技術。說的有點抽象,下面給個例子說明就很明白了。在上面這幅全明星照中,我們想找出姚明頭像的位置,並把它標記出來,可以做到嗎?可以,這就是模板匹配的要做的事情。...

OpenCV3學習總結

影象處理技術一般包括影象壓縮,增強和復原,匹配 描述和識別3個部分。影象處理和計算機視覺的區別在於 影象處理側重於 處理 影象 如增強 還原 去噪 分割等 而計算機視覺重點在於使用計算機來模擬人的視覺。opencv由一系列c函式和c 類構成,擁有包括500多個c函式的跨平台的中高層api。openc...