mat文件生成VOC数据格式

2017-11-06  本文已影响0人  王大垚

clc;

clear;

close all;

dbstop if error;

data_path = 'E:\Data4T\Hands_DATA';

res_path = 'E:\Data4T\Hands_DATA\Res_mat';

im_path = 'E:\Data4T\Hands_DATA\images';

mat_list = dir(fullfile(res_path, '*.mat'));

num_mat = length(mat_list);

save_label_path = fullfile(data_path, 'labels');

if ~exist(save_label_path, 'dir')

mkdir(save_label_path);

end

folder_name = 'images';

for i_mat = 1 : num_mat

fprintf('%d/%d\n', i_mat, num_mat);

load(fullfile(res_path, mat_list(i_mat).name));

im = imread(fullfile(im_path, img_name));

[h, w, d] = size(im);

%% 

CreateNode = com.mathworks.xml.XMLUtils.createDocument('annotation');

Root = CreateNode.getDocumentElement;

node = CreateNode.createElement('folder');

node.appendChild(CreateNode.createTextNode(sprintf('%s', folder_name)));

Root.appendChild(node);

node = CreateNode.createElement('filename');

node.appendChild(CreateNode.createTextNode(sprintf('%s', img_name)));

Root.appendChild(node);

% source node

source_node = CreateNode.createElement('source');

Root.appendChild(source_node);

node = CreateNode.createElement('filename');

node.appendChild(CreateNode.createTextNode(sprintf('NULL')));

source_node.appendChild(node);

node = CreateNode.createElement('annotation');

node.appendChild(CreateNode.createTextNode(sprintf('NULL')));

source_node.appendChild(node);

node = CreateNode.createElement('image');

node.appendChild(CreateNode.createTextNode(sprintf('NULL')));

source_node.appendChild(node);

node = CreateNode.createElement('flickrid');

node.appendChild(CreateNode.createTextNode(sprintf('NULL')));

source_node.appendChild(node);

% owner node

owner_node = CreateNode.createElement('owner');

Root.appendChild(owner_node);

node = CreateNode.createElement('flickrid');

node.appendChild(CreateNode.createTextNode(sprintf('NULL')));

owner_node.appendChild(node);

node = CreateNode.createElement('name');

node.appendChild(CreateNode.createTextNode(sprintf('NULL')));

owner_node.appendChild(node);

% size node

size_node = CreateNode.createElement('size');

Root.appendChild(size_node);

node = CreateNode.createElement('width');

node.appendChild(CreateNode.createTextNode(sprintf('%s', num2str(w))));

size_node.appendChild(node);

node = CreateNode.createElement('height');

node.appendChild(CreateNode.createTextNode(sprintf('%s', num2str(h))));

size_node.appendChild(node);

node = CreateNode.createElement('depth');

node.appendChild(CreateNode.createTextNode(sprintf('%s', num2str(d))));

size_node.appendChild(node);

% segmente node

node = CreateNode.createElement('segmented');

node.appendChild(CreateNode.createTextNode(sprintf('NULL')));

Root.appendChild(node);

% obj node

obj_node = CreateNode.createElement('object');

Root.appendChild(obj_node);

node = CreateNode.createElement('label');

node.appendChild(CreateNode.createTextNode(sprintf('%s', bbox_class{1})));

obj_node.appendChild(node);

node = CreateNode.createElement('pose');

node.appendChild(CreateNode.createTextNode(sprintf('NULL')));

obj_node.appendChild(node);

node = CreateNode.createElement('truncated');

node.appendChild(CreateNode.createTextNode(sprintf('NULL')));

obj_node.appendChild(node);

node = CreateNode.createElement('difficult');

node.appendChild(CreateNode.createTextNode(sprintf('NULL')));

obj_node.appendChild(node);

% bounding box node

bndbox_node = CreateNode.createElement('bndbox');

obj_node.appendChild(bndbox_node);

node = CreateNode.createElement('xmin');

node.appendChild(CreateNode.createTextNode(sprintf('%s', num2str(bbox_all(1)))));

bndbox_node.appendChild(node);

node = CreateNode.createElement('ymin');

node.appendChild(CreateNode.createTextNode(sprintf('%s', num2str(bbox_all(2)))));

bndbox_node.appendChild(node);

node = CreateNode.createElement('xmax');

node.appendChild(CreateNode.createTextNode(sprintf('%s', num2str(bbox_all(3)))));

bndbox_node.appendChild(node);

node = CreateNode.createElement('ymax');

node.appendChild(CreateNode.createTextNode(sprintf('%s', num2str(bbox_all(4)))));

bndbox_node.appendChild(node);

[~, nn, ~] = fileparts(img_name);

xml_name = fullfile(save_label_path, [nn, '.xml']);

xmlwrite(xml_name, CreateNode);

end

上一篇下一篇

猜你喜欢

热点阅读