根据自己的标注文件,使用关键的几个函数即可:
xmlread()
: 读入xml文件getElementsByTagName()
: 获取关键字下的信息getElementsByTagName().item(0).getTextContent()
: 提取第一个值信息,并转换成字符
函数参考如下:
function [width, height, xmin, ymin, xmax, ymax] = xml_decode(xml_file)
try
info = xmlread(xml_file);
catch
error('Failed read xml file %s!', xml_file);
end
width = str2num(info.getElementsByTagName('width').item(0).getTextContent());
height = str2num(info.getElementsByTagName('height').item(0).getTextContent());
xmin_array = info.getElementsByTagName('xmin');
ymin_array = info.getElementsByTagName('ymin');
xmax_array = info.getElementsByTagName('xmax');
ymax_array = info.getElementsByTagName('ymax');
num_rect = xmin_array.getLength;
xmin = zeros(num_rect, 1);
ymin = zeros(num_rect, 1);
xmax = zeros(num_rect, 1);
ymax = zeros(num_rect, 1);
for i = 1 : num_rect
xmin_item = xmin_array.item(i - 1);
ymin_item = ymin_array.item(i - 1);
xmax_item = xmax_array.item(i - 1);
ymax_item = ymax_array.item(i - 1);
xmin(i, :) = str2num(char(xmin_item.getFirstChild.getTextContent()));
ymin(i, :) = str2num(char(ymin_item.getFirstChild.getTextContent()));
xmax(i, :) = str2num(char(xmax_item.getFirstChild.getTextContent()));
ymax(i, :) = str2num(char(ymax_item.getFirstChild.getTextContent()));
end
end