将matlab的数据保存xml 在c++下通过opencv读取;

saveName='test';

Node=com.mathworks.xml.XMLUtils.createDocument('opencv_storage');

RootNode=Node.getDocumentElement;

RootNode.setAttribute('attr_name','attr_value');



IDNode=Node.createElement('ID');    //在Node下生成一个单独的节点ID

IDNode.appendChild(docNode.createTextNode(sprintf('%i',1)));

RootNode.appendChild(IDNode);


newElement=Node.createElement('N');

RootNode.appendChild(newElementent);


data=1:10;

dataNode=Node.createElement('N1');

dataNode.appendChild(Node.createTextNode(sprintf('%i',data(1:10))));

newElement.appendChild(dataNode);


data=[1 2 3;4 5 6;7 8 9];

dataNode=Node.createElement('N2');

for i=1:3

     for j=1:3

     dataNode.appendChild(Node.createTextNode(sprintf('%f',data(i,j))));

     end

dataNode.appendChild(Node.CreateTextNode(sprintf('\n'))));

end

NewElement.appendChild(dataNode);


xmlFileName=[saveName,'.xml'];

xmlwrite(xmlFileName,Node);

________________________________________________________________________________________

opencv

FileStorage file(filepath,FileStorage::READ);

int t;

file["ID"]>>t;

FileNode node0=file["N"]['N1'];//  FileNode node0,node1;node0=file["N"],node1=node["N1"];

FileNodeIterator it= node0.begin(),it_end=node0.end();

for(;it!=it_end;it++)

cout<<(int)*it<





你可能感兴趣的:(将matlab的数据保存xml 在c++下通过opencv读取;)