版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第C++OpenCV讀寫XML或YAML文件的方法詳解/*
*filestorage_sampledemonstratetheusageoftheopencvserializationfunctionality
#include"opencv2/core.hpp"
#includeiostream
#includestring
usingstd::string;
usingstd::cout;
usingstd::endl;
usingstd::cerr;
usingstd::ostream;
usingnamespacecv;
staticvoidhelp(char**av)
cout"\nfilestorage_sampledemonstratetheusageoftheopencvserializationfunctionality.\n"
"usage:\n"
av[0]"outputfile.yml.gz\n"
"\noutputfileabovecanhavemanydifferentextensions,seebelow."
"\nThisprogramdemonstratestheuseofFileStorageforserialization,thatisinuseandinOpenCV\n"
"Forexample,howtocreateaclassandhaveitserialize,butalsohowtouseittoreadandwritematrices.\n"
"FileStorageallowsyoutoserializetovariousformatsspecifiedbythefileendtype."
"\nYoushouldtryusingdifferentfileextensions.(e.g.yamlymlxmlxml.gzyaml.gzetc...)\n"endl;
structMyData
MyData():
A(0),X(0),id()
explicitMyData(int):
A(97),X(CV_PI),id("mydata1234")
intA;
doubleX;
stringid;
voidwrite(FileStoragefs)const//Writeserializationforthisclass
fs"{""A"A"X"X"id"id"}";
voidread(constFileNodenode)//Readserializationforthisclass
A=(int)node["A"];
X=(double)node["X"];
id=(string)node["id"];
//Thesewriteandreadfunctionsmustexistaspertheinlinefunctionsinoperations.hpp
staticvoidwrite(FileStoragefs,conststd::string,constMyDatax){
x.write(fs);
staticvoidread(constFileNodenode,MyDatax,constMyDatadefault_value=MyData()){
if(node.empty())
x=default_value;
else
x.read(node);
staticostreamoperator(ostreamout,constMyDatam){
out"{id="m.id",";
out"X="m.X",";
out"A="m.A"}";
returnout;
intmain(intac,char**av)
cv::CommandLineParserparser(ac,av,
"{@input||}{helph||}"
if(parser.has("help"))
help(av);
return0;
stringfilename=parser.getstring("@input");
if(filename.empty())
help(av);
return1;
//write
FileStoragefs(filename,FileStorage::WRITE);
cout"writingimages\n";
fs"images""[";
fs"image1.jpg""myfi.png""baboon.jpg";
cout"image1.jpg""myfi.png""baboon.jpg"endl;
fs"]";
cout"writingmats\n";
MatR=Mat_double::eye(3,3),T=Mat_double::zeros(3,1);
cout"R="R"\n";
cout"T="T"\n";
fs"R"R;
fs"T"T;
cout"writingMyDatastruct\n";
MyDatam(1);
fs"mdata"m;
coutmendl;
//read
FileStoragefs(filename,FileStorage::READ);
if(!fs.isOpened())
cerr"failedtoopen"filenameendl;
help(av);
return1;
FileNoden=fs["images"];
if(n.type()!=FileNode::SEQ)
cerr"imagesisnotasequence!FAIL"endl;
return1;
cout"readingimages\n";
FileNodeIteratorit=n.begin(),it_end=n.end();
for(;it!=it_end;++it)
cout(string)*it"\n";
MatR,T;
cout"readingRandT"endl;
fs["R"]R;
fs["T"]T;
cout"R="R"\n";
cout"T="Tendl;
MyDatam;
fs["mdata"]m;
cout"readmdata\n";
coutmendl;
cout"attemptingtoreadmdata_b\n";//Showdefaultbehaviorforemptymatrix
fs["mdata_b"]m;
cout"readmdata_b\n";
coutmendl;
cout"Tryopening"filename"toseetheserializeddata."endlendl;
//readfromstring
cout"Readdatafromstring\n";
stringdataString=
"%YAML:1.0\n"
"mdata:\n"
"A:97\n"
"X:3.1415926535897931e+00\n"
"id:mydata1234\n";
MyDatam;
FileStoragefs(dataString,FileStorage::READ|FileStorage::MEMORY);
cout"attemptingtoreadmdata_bfromstring\n";//Showdefaultbehaviorforemptymatrix
fs["mdata"]m;
cout"readmdata\n";
coutmendl;
//writetostring
cout"Writedatatostring\n";
FileStoragefs(filename,FileStorage::WRITE|FileStorage::MEMORY|FileStorage::FORM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年湖南勞動人事職業(yè)學(xué)院單招職業(yè)傾向性測試題庫及答案1套
- 2026年哈爾濱應(yīng)用職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試模擬測試卷及答案1套
- 2025廣東省疾病預(yù)防控制中心招聘科研助理1人(公共基礎(chǔ)知識)測試題附答案
- 2026寧波市江北區(qū)面向2026屆高校畢業(yè)生招聘高層次和緊缺人才13人筆試參考題庫及答案解析
- 2025年甘肅省定西市隴西縣福星中心衛(wèi)生院高塄分院招聘鄉(xiāng)村醫(yī)生(公共基礎(chǔ)知識)綜合能力測試題附答案
- 2026中國安能集團科工有限公司招聘6人筆試參考題庫及答案解析
- 2025河南省人力資源開發(fā)中心有限公司招聘1人考試題庫附答案
- 2025年甘肅省隴南師范學(xué)院第二批高層次人才和急需緊缺專業(yè)技術(shù)人才引進(20人)參考題庫附答案
- 2025廣東廣州市天河區(qū)靈秀小學(xué)招聘英語教師1人(學(xué)校自籌經(jīng)費)考試歷年真題匯編附答案
- 2025年保山市部分醫(yī)療衛(wèi)生事業(yè)單位招聘博士研究生(10人)筆試備考題庫附答案
- 廣東省大灣區(qū)2023-2024學(xué)年高一上學(xué)期期末生物試題【含答案解析】
- 第四單元地理信息技術(shù)的應(yīng)用課件 【高效課堂+精研精講】高中地理魯教版(2019)必修第一冊
- 魯科版高中化學(xué)必修一教案全冊
- 提高隧道初支平整度合格率
- 2023年版測量結(jié)果的計量溯源性要求
- 建筑能耗與碳排放研究報告
- GB 29415-2013耐火電纜槽盒
- 中國古代經(jīng)濟試題
- 軟件定義汽車:產(chǎn)業(yè)生態(tài)創(chuàng)新白皮書
- 磷石膏抹灰專項施工方案
- 水電水利工程施工質(zhì)量管理培訓(xùn)講義
評論
0/150
提交評論