美文网首页
mat文件生成VOC数据格式

mat文件生成VOC数据格式

作者: 王大垚 | 来源:发表于2017-11-06 17:21 被阅读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

    相关文章

      网友评论

          本文标题:mat文件生成VOC数据格式

          本文链接:https://www.haomeiwen.com/subject/figlmxtx.html