【OpenCV学习】XML的读写

简介: 作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/   #include "highgui.h" #include "cv.h" #include #include using namespace std; int main(void) { int a=1; float b=2.

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

 

#include "highgui.h"
#include "cv.h"
#include <iostream>
#include <iomanip>
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;
}

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/


               作者:gnuhpc
               出处:http://www.cnblogs.com/gnuhpc/
               除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


分享到:

目录
相关文章
|
1月前
|
存储 资源调度 算法
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
|
1月前
|
算法 C++ 计算机视觉
Opencv(C++)学习系列---Laplacian拉普拉斯边缘检测算法
Opencv(C++)学习系列---Laplacian拉普拉斯边缘检测算法
|
1月前
|
算法 计算机视觉 C++
Opencv(C++)学习系列---Sobel索贝尔算子边缘检测
Opencv(C++)学习系列---Sobel索贝尔算子边缘检测
|
1月前
|
算法 C++ 计算机视觉
Opencv(C++)学习系列---Canny边缘检测算法
Opencv(C++)学习系列---Canny边缘检测算法
|
1月前
|
存储 计算机视觉 C++
Opencv(C++)学习系列---特征点检测和匹配
Opencv(C++)学习系列---特征点检测和匹配
|
1月前
|
算法 测试技术 计算机视觉
Opencv(C++)系列学习---opencv_contrib安装
Opencv(C++)系列学习---opencv_contrib安装
|
1月前
|
C++ 计算机视觉
Opencv(C++)系列学习---读取视频文件和打开摄像头
Opencv(C++)系列学习---读取视频文件和打开摄像头
|
2月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.3、图像缩放resize函数
OpenCV这么简单为啥不学——1.3、图像缩放resize函数
40 0
|
9天前
|
编解码 计算机视觉 Python
opencv 图像金字塔(python)
opencv 图像金字塔(python)
|
1月前
|
存储 计算机视觉
OpenCV(三十九):积分图像
OpenCV(三十九):积分图像
17 0

相关课程

更多