python提取xml的所有框坐标_python 提取批量xml文件中的坐标信息存入txt文件 xml文件转txt文件...

读取多个xml文件中的坐标信息:xmin、xmax、ymin、ymax(实际为一个矩形框的坐标值),并通过简单的计算得到矩形框的长、宽,最后按照自己的需求读入到一个txt文档中

xml文件目录及文件如下:

下面是代码实现

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') #匹配所有的符合条件的文件,并将其以list的形式返回

for i, file in enumerate(annotations): #对于一个可迭代的(iterable)/可遍历的对象,enumerate将其组成一个索引序列,利用它可以同时获得索引和值

file_save = file.split('.')[0]+'.txt'

file_txt = os.path.join(outdir, file_save) #连接两个或更多的路径名组件 outdir

f_w = open(outdir, 'a')

# 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

xx1 = xmlbox.find('xmax').text

yn = xmlbox.find('ymin').text

yx1 = xmlbox.find('ymax').text

#根据x,y的最大最小值,计算其所在的矩形框的大小 长 宽

xx = str(int(xx1) - int(xn));

yx = str(int(yx1) - int(yn));

#print xn 输出矩形框的左上角的坐标,及矩形框的长、宽

f_w.write(xn+','+yn+','+xx+','+yx+',\n')

#f_w.write(name.encode("utf-8")+'\n')

indir='F:/project/PycharmProjects/xml/plane/ground1/' #获得所有xml文件目录

outdir = 'F:/project/PycharmProjects/xml/data-txt/plane/ground1.txt'

xml_to_txt(indir, outdir)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值