加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);

在第二部分读取

注意:如果不能正常读取可以先用第一部分生成一个,然后参照格式,适当修改。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读