1.写XMl文件,
void CrecognitionDlg::storeDirectoryFaces(){ CvFileStorage * fileStorage; fileStorage = cvOpenFileStorage( "directoryInfo.xml",CV_STORAGE_WRITE ); cvWriteInt( fileStorage,"nFaces",indexFaces.size() ); cvStartWriteStruct(fileStorage,"CVFaceRecog",CV_NODE_MAP); for (size_t i=0;i<indexFaces.size();i++) { char person[100]; sprintf( person,"person_%d",(i+1) );//必须区分开,否则读的时候会出问题 cvStartWriteStruct(fileStorage,person,CV_NODE_MAP); cvWriteInt( fileStorage,"index",indexFaces.at(i) ); cvWriteString(fileStorage,"name",namePerson.at(i)); cvWriteString(fileStorage,"directory",pathFaces.at(i)); cvEndWriteStruct(fileStorage); } cvEndWriteStruct(fileStorage); cvReleaseFileStorage( &fileStorage ); }
写完的内容如下:
<?xml version="1.0"?> <opencv_storage> <nFaces>3</nFaces> <CVFaceRecog> <person_1> <index>0</index> <name>aaa</name> <directory>C:Pictureskobe</directory></person_1> <person_2> <index>1</index> <name>bbb</name> <directory>C:PicturesLi</directory></person_2> <person_3> <index>2</index> <name>ccc</name> <directory>C:PicturesSun</directory></person_3></CVFaceRecog> </opencv_storage>
2.读XML
int CrecognitionDlg::loadDirectoryFaces(){ CvFileStorage * fileStorage = NULL; int i; CvSeq* seq; CvSeqReader reader; fileStorage = cvOpenFileStorage( "directoryInfo.xml",CV_STORAGE_READ ); if( !fileStorage ) { return 0; } namePerson.clear(); pathFaces.clear(); indexFaces.clear(); CvFileNode* root = cvGetRootFileNode( fileStorage,0); CvFileNode* data = cvGetFileNodeByName( fileStorage,root,"CVFaceRecog" ); seq = data->data.seq; cvStartReadSeq( seq,&reader,0 ); int nFaces = cvReadIntByName( fileStorage,0 ); for(i = 0; i < nFaces; i++) { CvFileNode *pt = (CvFileNode*)reader.ptr; namePerson.push_back(cvReadStringByName(fileStorage,pt,0)); pathFaces.push_back(cvReadStringByName(fileStorage,0)); indexFaces.push_back(cvReadIntByName(fileStorage,0)); CV_NEXT_SEQ_ELEM(seq->elem_size,reader); } cvReleaseFileStorage( &fileStorage ); return 0; }
http://blog.sina.com.cn/s/blog_929e35c60100z5tj.html (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|