OpenCv xml读写

来源:互联网 发布:2017双十一淘宝打几折 编辑:程序博客网 时间:2024/05/23 13:53
#include "highgui.h"   #include "cv.h"   #include <iostream>   #include <iomanip>   #pragma comment(lib, "cv.lib")#pragma comment(lib, "cvaux.lib")#pragma comment(lib, "cxcore.lib")#pragma comment(lib, "highgui.lib")using namespace std;  int main(void)  {      int a=1;      float b=2.;      double c[]={4.5,6.7,8.9};      CvMat *mat=cvCreateMat(3,3,CV_32SC1);      cvSetIdentity(mat);//初始化这个矩阵       CvFileStorage *fs=cvOpenFileStorage("test.xml",0,CV_STORAGE_WRITE);      cvWriteComment(fs,"my data",1);      //开始写数据       cvStartWriteStruct(fs,"DATA",CV_NODE_MAP,0,cvAttrList(0,0));           //写入数据c数组       cvStartWriteStruct(fs,"c",CV_NODE_SEQ,0,cvAttrList(0,0));      cvWriteRawData(fs,c,3,"d");      cvEndWriteStruct(fs);      //写入单位矩阵mat       cvSave("mat.xml",mat);      //写入整型数据a       cvWriteInt(fs,"a",a);      //写入浮点型数据b       cvWriteReal(fs,"b",b);      cvStartWriteStruct(fs,"c",CV_NODE_SEQ,0,cvAttrList(0,0));      cvWriteRawData(fs,c,3,"d");      cvEndWriteStruct(fs);      cvEndWriteStruct(fs);      cvReleaseFileStorage(&fs);      cvReleaseMat(&mat);  /**********读取XML***********/      int i,j;      CvMat *readbyname,*readbynode;      CvFileNode *mat_node;//文件结点       CvFileStorage *fs_read=NULL;//文件存储       fs_read=cvOpenFileStorage("mat.xml",0,CV_STORAGE_READ);      readbyname = (CvMat *)cvReadByName(fs_read,NULL,"mat",NULL);      mat_node = cvGetFileNodeByName(fs_read,NULL,"mat");      readbynode = (CvMat *)cvRead(fs_read,mat_node);      for (i=0;i<3;i++)      {          for (j=0;j<3;j++)          {              cout<<CV_MAT_ELEM(*readbynode,int,i,j);          }          cout<<endl;      }      cvReleaseFileStorage(&fs_read);      cvReleaseMat(&readbynode);      cvReleaseMat(&readbyname);           return 0; //比较简单的一种应用为:cvSave("fileName",cvMat);

原创粉丝点击