trainImageLaber辅助生成VOC XML标注信息

function [single_number,single_image] = save2XML(labelresults)

names = {‘a’,’b’,’c’,’d’,’e’,’f’,’g’};

[n, ~] = size(labelresults);
single_image = cell(n,5);
single_number = zeros(n,5);
for i = 1 : n
strImg = labelresults(i,1).imageFilename{1,1};
im = imread(strImg);
[r,c,d] = size(im);

k = strfind(strImg, '.');
strXml = strcat(strImg(1:k), '.xml');
k = strfind(strImg, '\');
strImgName = strImg(k(end)+1:length(strImg));

f = fopen(strXml, 'w');
fprintf(f,'<annotation>\n');
fprintf(f,'\t<folder>MTN2018</folder>\n');
fprintf(f,'\t<filename>%s</filename>\n',strImgName);
fprintf(f,'\t<source>\n');
fprintf(f,'\t\t<database>The MTN2018 Database</database>\n');
fprintf(f,'\t\t<annotation>MIIPL MTN2018</annotation>\n');
fprintf(f,'\t\t<image>Internet</image>\n');
fprintf(f,'\t\t<flickrid>000000000</flickrid>\n');
fprintf(f,'\t</source>\n');
fprintf(f,'\t<owner>\n');
fprintf(f,'\t\t<flickrid>MIIPL</flickrid>\n');
fprintf(f,'\t\t<name>MIIPL001</name>\n');
fprintf(f,'\t</owner>\n');

fprintf(f,'\t<size>\n');
fprintf(f,'\t<width>%d</width>\n',c);
fprintf(f,'\t<height>%d</height>\n',r);
fprintf(f,'\t<depth>%d</depth>\n',d);
fprintf(f,'\t</size>\n');
fprintf(f,'\t<segmented>0</segmented>\n');

for j = 3 : 7
    cell_  = labelresults{i,j};
    mat = cell_{1,1};
    if size(mat,1)==0
        continue;
    end
    single_number(i,j-2) = single_number(1,j-2) + size(mat,1);
    single_image(i,j-2) = {strImg};
    for k = 1 : size(mat,1)
        rc = mat(k,:);
        fprintf(f,'\t<object>\n');
        fprintf(f,'\t\t<name>%s</name>\n',names{j});
        fprintf(f,'\t\t<pose>Left</pose>\n');
        fprintf(f,'\t\t<truncated>0</truncated>\n');
        fprintf(f,'\t\t<difficult>0</difficult>\n');
        fprintf(f,'\t\t<bndbox>\n');
        fprintf(f,'\t\t\t<xmin>%d</xmin>\n',rc(1));
        fprintf(f,'\t\t\t<ymin>%d</ymin>\n',rc(2));
        fprintf(f,'\t\t\t<xmax>%d</xmax>\n',rc(3)+rc(1)-1);
        fprintf(f,'\t\t\t<ymax>%d</ymax>\n',rc(4)+rc(2)-1);
        fprintf(f,'\t\t</bndbox>\n');
        fprintf(f,'\t</object>\n');    
    end
end

fprintf(f,'</annotation>\n'); 
fclose(f);

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值