老卫带你学---xml转化txt

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yixieling4397/article/details/88065439

在我们深度学习训练过程中,我们需要对区域进行标记,我们往往使用xml作为存储文件,可是有的时候,我们需要使用txt的标记文件。

那么可以通过以下代码实现xml转化txt:

# -*- coding:utf-8 -*-
#作者:卫毅然(老卫)
#邮箱:[email protected]
#该脚本用于将xml文件转化为txt文件

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

jpg_indir="/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/JPEGImages/"

def xml_to_txt(indir,outdir):

    os.chdir(indir)
    annotations = os.listdir('.')
    annotations = glob.glob(str(annotations)+'*.xml')
    retval = os.getcwd()
    print(retval)
    print(annotations)
    f_w = open("/home/weiyiran/Documents/xml_to_txt/sample.txt", 'w')
    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()

        file_name=file.split('.')[0]+".jpg"
        print(file_name)

        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(jpg_indir+file_name+',')
                f_w.write(xn+','+yn+','+xx+','+yx+',')
                f_w.write(str(name+"\n"))

indir='/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/Annotations'   #xml目录
outdir='/home/weiyiran/Documents/xml_to_txt'  #txt目录

xml_to_txt(indir,outdir)

转化之后的形式如下:

/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/JPEGImages/suo_zhai_21.jpg,51,161,117,263,suo_zhai
/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/JPEGImages/xun_san_117.jpg,52,115,140,267,xun_san
/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/JPEGImages/suo_zhai_72.jpg,69,90,128,169,suo_zhai
/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/JPEGImages/suo_zhai_62.jpg,42,109,116,201,suo_zhai
/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/JPEGImages/kui_yang_38.jpg,63,233,111,316,kui_yang
/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/JPEGImages/xun_san_71.jpg,72,113,117,221,xun_san
/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/JPEGImages/xun_san_116.jpg,52,132,139,284,xun_san
/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/JPEGImages/suo_zhai_112.jpg,101,47,169,196,suo_zhai
/home/weiyiran/software/py-faster-rcnn-gpu/face-py-faster-rcnn-master/data/VOCdevkit2007/VOC2007/JPEGImages/suo_zhai_16.jpg,26,135,117,249,suo_zhai

喜欢老卫的,请点击左上角的关注,给老卫点个赞!
欢迎交流,互相学习!

猜你喜欢

转载自blog.csdn.net/yixieling4397/article/details/88065439
今日推荐