本代码可以把PASCAL Annottation Version 1.00的 .txt 数据转换为VOC格式的. xml 数据。
前提:得到 PASCAL Annotation Version 1.00 ,需要使用到其中的PASCALreadrecord.m文件。同时,我这里使用的数据集是INRIA数据集,所以只有一类目标(行人)。
代码如下:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PAS2XML.m
% 作者:connie69
% 博客:http://blog.csdn.net/connie69
% 邮箱:conniechen9469@gmail.com
% 时间:2016/8/16
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 得到所有文件列表
addpath('annotations'); %添加你存放标记文件的路径
annotList = dir('annotations/*.txt'); %得到该路径下的所有txt文件
annotListLen = length(annotList); % txt文件的数目
for i = 1:annotListLen
% 由 PASCAL Annotaions Ver. 1.00 工具读取数据
fn = strcat('annotations/', annotList(i).name); %需要读取的文件名
record = PASreadrecord(fn); %读取数据
% 提取你所需的数据
imgname = record.imgname;
idx = regexp(imgname,'/');
imgsize = record.imgsize;
db = 'INRIA';
obj = record.objects;
object_num = length(obj);
% 建立一个xml文件,存储数据、
%这是你要存储的xml文件路径,比如我这个代码是存在当前工作目录下的‘Gen/Test/pos/文件名.xml’
path_data = strcat('Gen/Test/pos/', annotList(i).name(1:end-4));
path_data = strcat(path_data, '.xml');
%下面建立节点,我用缩进代表层级
%建立根节