opencv 读写XML YML
生活随笔
收集整理的這篇文章主要介紹了
opencv 读写XML YML
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//序列沒有標(biāo)簽CvMemStorage *mem = cvCreateMemStorage(0);CvFileStorage *file = cvOpenFileStorage("e:\\123.yml", mem, CV_STORAGE_READ | CV_STORAGE_WRITE);cvStartWriteStruct(file, NULL, CV_NODE_SEQ );cvWriteInt(file, NULL, 123);//寫入的是序列,名稱都為NULLcvWriteReal(file, NULL, 32.0);cvWriteString(file, NULL, "123123");int dbData[5] = {12, 3, 0, 5, 8};const string strType = "i";cvWriteRawData(file, dbData, 5, strType.c_str());cvWriteComment(file, "my comment", 0);//把注釋寫在該行的后面CvFileNode *node = cvGetRootFileNode(file, 0);if (node != NULL){printf("%s\n", node->data.str.ptr);}cvEndWriteStruct(file);cvReleaseFileStorage(&file);cvReleaseMemStorage(&mem);
可以看出序列寫文件沒有節(jié)點(diǎn)
CvMemStorage *mem = cvCreateMemStorage(0);CvFileStorage *file = cvOpenFileStorage("e:\\123.xml", mem, CV_STORAGE_READ | CV_STORAGE_WRITE);cvStartWriteStruct(file, "UserInfo", CV_NODE_MAP );cvWriteInt(file, "Integer", 123);//寫入的是序列,名稱都為NULLcvWriteReal(file, "Real", 32.0);cvWriteString(file, "String", "123123");cvWriteComment(file, "my comment", 0);//把注釋寫在該行的后面cvEndWriteStruct(file);cvReleaseFileStorage(&file);cvReleaseMemStorage(&mem);如果是MAP,就可以了
代碼如下
CvMemStorage *mem1 = cvCreateMemStorage(0);CvFileStorage *file1 = cvOpenFileStorage("e:\\123.xml", mem1, CV_STORAGE_READ);CvStringHashNode *hashNode = cvGetHashedKey(file1, "UserInfo", strlen("UserInfo"));CvFileNode *node1 = cvGetFileNode(file1, NULL, hashNode);if (node1 != NULL){//獲取根節(jié)點(diǎn)名稱printf("%s\n", cvGetFileNodeName(node1));}hashNode = cvGetHashedKey(file1, "Real", strlen("Real"));CvFileNode *nodeReal = cvGetFileNode(file1, node1, hashNode);if (nodeReal != NULL){//獲取子節(jié)點(diǎn)名稱printf("%s\n", cvGetFileNodeName(nodeReal));printf("%d\n", cvReadInt(nodeReal));}hashNode = cvGetHashedKey(file1, "Integer", strlen("Integer"));CvFileNode *nodeInteger = cvGetFileNode(file1, node1, hashNode);if (nodeInteger != NULL){//獲取子節(jié)點(diǎn)名稱printf("%s\n", cvGetFileNodeName(nodeInteger));printf("%d\n", cvReadInt(nodeInteger));}hashNode = cvGetHashedKey(file1, "String", strlen("String"));CvFileNode *nodeString = cvGetFileNode(file1, node1, hashNode);if (nodeString != NULL){//獲取子節(jié)點(diǎn)名稱printf("%s\n", cvGetFileNodeName(nodeString));printf("%s\n", cvReadString(nodeString));}printf("\n");printf("%f\n", cvReadRealByName(file1, node1, "Real"));//根據(jù)標(biāo)簽名獲取值printf("%s\n", cvReadStringByName(file1, node1, "String"));printf("%d\n", cvReadIntByName(file1, node1, "Integer"));cvReleaseFileStorage(&file1);cvReleaseMemStorage(&mem1);版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。
?
轉(zhuǎn)載于:https://www.cnblogs.com/qq76211822/p/4711993.html
總結(jié)
以上是生活随笔為你收集整理的opencv 读写XML YML的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle --case、while、
- 下一篇: 3D unity