标注工具生成的xml文件转为txt格式

上一篇文章介绍学习了标注工具labelImg的安装及详细使用,可以看到其标注成功之后生成的为xml格式文件:
这里写图片描述

但是大多数网络训练的时候需要对其进行格式转换,转为:坐标+标签 的txt格式类型的,所以如下程序用于实现此功能:

import os
import sys
import xml.etree.ElementTree as ET
import glob

def xml_to_txt(indir,outdir):

    os.chdir(indir)
    annotations = os.listdir('.')
    annotations = glob.glob(str(annotations)+'*.xml')

    for i, file in enumerate(annotations):

        file_save = file.split('.')[0]+'.txt'
        file_txt=os.path.join(outdir,file_save)
        f_w = open(file_txt,'w')

        # actual parsing
        in_file = open(file)
        tree=ET.parse(in_file)
        root = tree.getroot()

        for obj in root.iter('object'):
                current = list()
                name = obj.find('name').text

                xmlbox = obj.find('bndbox')
                xn = xmlbox.find('xmin').text
                xx = xmlbox.find('xmax').text
                yn = xmlbox.find('ymin').text
                yx = xmlbox.find('ymax').text
                #print xn
                f_w.write(xn+' '+yn+' '+xx+' '+yx+' ')
                f_w.write(name.encode("utf-8")+'\n')

indir='/home/zgz/data-xml'   #xml目录
outdir='/home/zgz/data-txt'  #txt目录

xml_to_txt(indir,outdir)

转换之后形式如下:
这里写图片描述

注意上面的每一行:4个点表示标注矩形框的上下斜对角线的2个坐标值,及后面的为label;

猜你喜欢

转载自blog.csdn.net/enjoy_endless/article/details/80819945
今日推荐