matlab 카메라 기반 xml 파일 내 보 내기

10098 단어 matlab도 출xml문건
1.매개 변 수 는 직경 방향 일 그 러 짐 3 개의 매개 변 수 를 선택 합 니까?아니면 두 개의 매개 변 수 를 선택 합 니까?
기본 두 인자

하면,만약,만약...

2.전환 생 성 결과 준비


2 매개 변수의 전환 코드
writeExternalandIntrinsicMatrix(cameraParams62,'cameraParams622.xml');

function writeExternalandIntrinsicMatrix(cameraParams,file)
%writeXML(cameraParams,file)
 
docNode = com.mathworks.xml.XMLUtils.createDocument('opencv_storage');
docRootNode = docNode.getDocumentElement;
IntrinsicMatrix = ((cameraParams.IntrinsicMatrix)');
 
TangentialDistortion =cameraParams.TangentialDistortion;
%Distortion = [cameraParams.RadialDistortion(1:2),TangentialDistortion, cameraParams.RadialDistortion(3)];
Distortion = [cameraParams.RadialDistortion(1:2),TangentialDistortion,0];
FocalLength = cameraParams.FocalLength;
camera_matrix = docNode.createElement('IntrinsicCam'); %      mat    
camera_matrix.setAttribute('type_id','opencv-matrix'); %      mat          
rows = docNode.createElement('rows'); %           
rows.appendChild(docNode.createTextNode(sprintf('%d',3))); %             ,                
camera_matrix.appendChild(rows); %            mat     
 
cols = docNode.createElement('cols');
cols.appendChild(docNode.createTextNode(sprintf('%d',3)));
camera_matrix.appendChild(cols);
 
dt = docNode.createElement('dt');
dt.appendChild(docNode.createTextNode('d'));
camera_matrix.appendChild(dt);
 
data = docNode.createElement('data');
for i=1:3
  for j=1:3
    data.appendChild(docNode.createTextNode(sprintf('%.16f ',IntrinsicMatrix(i,j))));
  end
  data.appendChild(docNode.createTextNode(sprintf('
'))); end camera_matrix.appendChild(data); docRootNode.appendChild(camera_matrix); distortion = docNode.createElement('DistortionCam'); distortion.setAttribute('type_id','opencv-matrix'); rows = docNode.createElement('rows'); rows.appendChild(docNode.createTextNode(sprintf('%d',1))); distortion.appendChild(rows); cols = docNode.createElement('cols'); cols.appendChild(docNode.createTextNode(sprintf('%d',5))); distortion.appendChild(cols); dt = docNode.createElement('dt'); dt.appendChild(docNode.createTextNode('d')); distortion.appendChild(dt); data = docNode.createElement('data'); for i=1:5 data.appendChild(docNode.createTextNode(sprintf('%.16f ',Distortion(i)))); end distortion.appendChild(data); docRootNode.appendChild(distortion); focalLength = docNode.createElement('FocalLength'); focalLength.setAttribute('type_id','opencv-matrix'); rows = docNode.createElement('rows'); rows.appendChild(docNode.createTextNode(sprintf('%d',1))); focalLength.appendChild(rows); cols = docNode.createElement('cols'); cols.appendChild(docNode.createTextNode(sprintf('%d',1))); focalLength.appendChild(cols); dt = docNode.createElement('dt'); dt.appendChild(docNode.createTextNode('d')); focalLength.appendChild(dt); data = docNode.createElement('data'); for i=1:1 data.appendChild(docNode.createTextNode(sprintf('%.16f ',FocalLength(i)))); end focalLength.appendChild(data); docRootNode.appendChild(focalLength); % distortion = docNode.createElement('Pmatrix'); % distortion.setAttribute('type_id','opencv-matrix'); % rows = docNode.createElement('rows'); % rows.appendChild(docNode.createTextNode(sprintf('%d',1))); % distortion.appendChild(rows); % % cols = docNode.createElement('cols'); % cols.appendChild(docNode.createTextNode(sprintf('%d',4))); % distortion.appendChild(cols); % % dt = docNode.createElement('dt'); % dt.appendChild(docNode.createTextNode('d')); % distortion.appendChild(dt); % data = docNode.createElement('data'); % for i=1:4 % data.appendChild(docNode.createTextNode(sprintf('%.16f ',Distortion(i)))); % end % distortion.appendChild(data); % docRootNode.appendChild(distortion); xmlFileName = file; xmlwrite(xmlFileName,docNode); end
2 인자 저장 결과

<?xml version="1.0" encoding="utf-8"?>
<opencv_storage>
  <IntrinsicCam type_id="opencv-matrix">
   <rows>3</rows>
   <cols>3</cols>
   <dt>d</dt>
   <data>1558.5669994681102253 0.0000000000000000 821.5211092415044050
0.0000000000000000 1557.8077127262038175 460.9748043702705331
0.0000000000000000 0.0000000000000000 1.0000000000000000
</data>
  </IntrinsicCam>
  <DistortionCam type_id="opencv-matrix">
   <rows>1</rows>
   <cols>5</cols>
   <dt>d</dt>
   <data>-0.1873006682834817 0.0171597428423078 0.0000000000000000 0.0000000000000000 0.0000000000000000 </data>
  </DistortionCam>
  <FocalLength type_id="opencv-matrix">
   <rows>1</rows>
   <cols>1</cols>
   <dt>d</dt>
   <data>1558.5669994681102253 </data>
  </FocalLength>
</opencv_storage>
3 매개 변수 전환 코드

function writeXML(cameraParams,file)
%writeXML(cameraParams,file)
%  :           xml  
%  :
%cameraParams:        
%file:xml   
%   xml             。
%        fatherNode,
%        childNode=docNode.createElement(childNodeName),
%            fatherNode.appendChild(childNode)
docNode = com.mathworks.xml.XMLUtils.createDocument('opencv_storage'); %  xml    
docRootNode = docNode.getDocumentElement; %     
 
IntrinsicMatrix = (cameraParams.IntrinsicMatrix)'; %      
RadialDistortion = cameraParams.RadialDistortion; %          1*3
TangentialDistortion =cameraParams.TangentialDistortion; %        1*2
  Distortion = [RadialDistortion(1:2),TangentialDistortion,RadialDistortion(3)]; %  opencv        [k1,k2,p1,p2,k3]
 
camera_matrix = docNode.createElement('camera-matrix'); %  mat  
camera_matrix.setAttribute('type_id','opencv-matrix'); %  mat    
rows = docNode.createElement('rows'); %     
rows.appendChild(docNode.createTextNode(sprintf('%d',3))); %      ,        
camera_matrix.appendChild(rows); %      mat   
 
cols = docNode.createElement('cols');
cols.appendChild(docNode.createTextNode(sprintf('%d',3)));
camera_matrix.appendChild(cols);
 
dt = docNode.createElement('dt');
dt.appendChild(docNode.createTextNode('d'));
camera_matrix.appendChild(dt);
 
data = docNode.createElement('data');
for i=1:3
  for j=1:3
    data.appendChild(docNode.createTextNode(sprintf('%.16f ',IntrinsicMatrix(i,j))));
  end
  data.appendChild(docNode.createTextNode(sprintf('
'))); end camera_matrix.appendChild(data); docRootNode.appendChild(camera_matrix); distortion = docNode.createElement('distortion'); distortion.setAttribute('type_id','opencv-matrix'); rows = docNode.createElement('rows'); rows.appendChild(docNode.createTextNode(sprintf('%d',5))); distortion.appendChild(rows); cols = docNode.createElement('cols'); cols.appendChild(docNode.createTextNode(sprintf('%d',1))); distortion.appendChild(cols); dt = docNode.createElement('dt'); dt.appendChild(docNode.createTextNode('d')); distortion.appendChild(dt); data = docNode.createElement('data'); for i=1:5 data.appendChild(docNode.createTextNode(sprintf('%.16f ',Distortion(i)))); end distortion.appendChild(data); docRootNode.appendChild(distortion); xmlFileName = file; xmlwrite(xmlFileName,docNode); end
3 매개 변수 전환 저장 결과

<?xml version="1.0" encoding="utf-8"?>
<opencv_storage>
  <camera-matrix type_id="opencv-matrix">
   <rows>3</rows>
   <cols>3</cols>
   <dt>d</dt>
   <data>1558.6100144620272658 0.0000000000000000 821.6453269280840459
0.0000000000000000 1557.8120286433929778 460.8682816753835141
0.0000000000000000 0.0000000000000000 1.0000000000000000
</data>
  </camera-matrix>
  <distortion type_id="opencv-matrix">
   <rows>5</rows>
   <cols>1</cols>
   <dt>d</dt>
   <data>-0.1840928673709393 -0.0328189923757994 0.0000000000000000 0.0000000000000000 0.2205440258401062 </data>
  </distortion>
</opencv_storage>
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기