opencv 创建和读取xml文件以及matlab生成xml
发布时间:2020-12-16 09:06:21 所属栏目:百科 来源:网络整理
导读:一、创建.xml文件 #include iostream#include cv.h#include highgui.husing namespace std;void main(){double a[9]={2.526,2,3,4,5,6,1,2};CvMat *testmat=cvCreateMat(3,CV_64FC1);cvInitMatHeader(testmat,CV_64FC1,a);cvSave("my.xml",testmat);} 二、读
一、创建.xml文件 #include <iostream> #include <cv.h> #include <highgui.h> using namespace std; void main(){ double a[9]={2.526,2,3,4,5,6,1,2}; CvMat *testmat=cvCreateMat(3,CV_64FC1); cvInitMatHeader(testmat,CV_64FC1,a); cvSave("my.xml",testmat); }二、读取xml文件main函数部分 CvMat* testmat=(CvMat*)cvLoad("test.xml"); for (int i=0;i<3;i++) { for (int j=0;j<3;j++) { cout<<cvGetReal2D(testmat,i,j)<<" "; } cout<<endl; } 三、matlab中生成xml(参考其他博客,亲测可用) function [ ] = createxml( name,datatest ) %CREATEXML 此处显示有关此函数的摘要 % 此处显示详细说明 xdoc=com.mathworks.xml.XMLUtils.createDocument('opencv_storage'); xroot=xdoc.getDocumentElement; % [m,n]=size(datatest); type=xdoc.createElement(name); xroot.appendChild(type); type.setAttribute('type_id',' opencv-matrix') % rows=xdoc.createElement('rows'); rows.appendChild(xdoc.createTextNode(sprintf('%d',m))); type.appendChild(rows); cols=xdoc.createElement('cols'); cols.appendChild(xdoc.createTextNode(sprintf('%d',n))); type.appendChild(cols); dt=xdoc.createElement('dt'); dt.appendChild(xdoc.createTextNode(sprintf('%s',' f'))); type.appendChild(dt); data=xdoc.createElement('data'); data.appendChild(xdoc.createTextNode(sprintf('%f ',datatest))); type.appendChild(data); str=strcat(name,'.xml'); xmlwrite(str,xdoc); end四、matlab中.mat文件在opencv中使用 使用第三部分的将字典B转换成xml文件Dic: createxml('Dic',B); 在第二部分读取 注意:如果不能正常读取可以先用第一部分生成一个,然后参照格式,适当修改。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |