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...