Matlab 读写*.xml文件
1.摘要
因为经常使用将图像中的目标标注信息保存在*.xml文件中。在训练深度神经网络是常用这样的训练数据。有时候需要使用原有的数据来扩充数据,而最常用的工具也就是Matlab(这里示例使用的Matlab2016b)。在这篇博文中主要介绍:①Matlab读取*.xml文件信息;②将*.xml文件中的信息显示在对应的图像上,可以简单可视化数据;③将在图像中的目标数据写入*.xml文件中; ④读取*.xml文件相关的函数。将Matlab相关代码附上,希望对大家有所帮助。
如果对你有所帮助,请帮忙打“Call”点赞哈,谢谢啦!!!
%%
%文件创建:Carlson 2018.04.11
%全部功能:
% 1.读、写xml文件
% 2.读xml文件并显示目标信息
%目的:
% 1.显示检测图像中标注是否正确
% 2.更改或者扩充数据使用
%% 初始化
%注意修改下面四个值
clear
xmlfilepath='Annotations'; %标注文件*.xml的位置
ImagefilePath='JPEGImages'; %图像文件*.jpg的位置
NewxmlPath='AnnotationsNew'; %保存新的*.xml文件位置
NewImgPath='JPEGImagesNew'; %保存新的*.jpg文件位置
%% Main 函数
%示例1
[Imageinfo,ImageObject]=Readxmlfile([xmlfilepath,'\','IMG_044.xml']);
%示例2
CheckxmlandImg(xmlfilepath,ImagefilePath)
%示例3
%imageinfo={'IMG_002.jpg',1123,1233,3};
%imageObject={
{'object1',11,22,33,44},{'object2',111,122,313,414}};
%Writexmlfile(imageinfo,ImageObject,NewxmlPath);
Writexmlfile(Imageinfo,ImageObject,NewxmlPath);
如下是*.xml文件的内容:
<?xml version="1.0" encoding="utf-8"?>
<annotation>
<folder>hudie</folder>
<filename>IMG_044.jpg</filename>
<path>C:\Carlson\Dataset\IMG_044.jpg</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>4288</width>
<height>2848</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>object1</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>1028</xmin>