xml格式转换为txt格式

本文借用yolo中的程序进行修改,链接如下:

https://pjreddie.com/media/files/voc_label.py

修改后程序如下:

import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import joinsets=[('2007', 'train'), ('2007', 'val'), ('2007', 'test')]classes = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]def convert(size, box):dw = 1./size[0]dh = 1./size[1]x = (box[0] + box[1])/2.0y = (box[2] + box[3])/2.0w = box[1] - box[0]h = box[3] - box[2]x = x*dww = w*dwy = y*dhh = h*dhreturn (x,y,w,h)def convert_annotation(year, image_id):in_file = open('VOCdevkit/VOC%s/Annotations/%s.xml'%(year, image_id))out_file = open('VOCdevkit/VOC%s/labels/%s.txt'%(year, image_id), 'w')tree=ET.parse(in_file)root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)for obj in root.iter('object'):difficult = obj.find('difficult').textcls = obj.find('name').textif cls not in classes or int(difficult) == 1:continuecls_id = clsxmlbox = obj.find('bndbox')b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text), float(xmlbox.find('ymax').text))bb = convert((w,h), b)out_file.write(" " + " ".join([str(a) for a in bb]) +" "+str(cls_id)+ '\n')wd = getcwd()for year, image_set in sets:if not os.path.exists('VOCdevkit/VOC%s/labels/'%(year)):os.makedirs('VOCdevkit/VOC%s/labels/'%(year))image_ids = open('VOCdevkit/VOC%s/ImageSets/Main/%s.txt'%(year, image_set)).read().strip().split()list_file = open('%s_%s.txt'%(year, image_set), 'w')for image_id in image_ids:list_file.write('%s/VOCdevkit/VOC%s/JPEGImages/%s.jpg\n'%(wd, year, image_id))convert_annotation(year, image_id)list_file.close()

运行后,效果如图:

主要的修改处是在读取.text中的数据。

xml格式转换为txt格式相关推荐

  1. 数据标签处理:python将xml文件转换为txt,csv格式

    数据标签处理:python将xml文件转换为txt,csv格式 这里的标注文件为点标注文件 每次要用数据处理脚本的时候都忘记放哪里了,然后重写了一遍又一遍,虽然代码不长,但是每次都有重新写还是很麻烦, ...

  2. 训练YOLO v4模型时,xml格式转txt格式

    YOLO训练时需要的标签数据是txt格式的 而以前做Faster-RCNN的时候,标签文件是xml格式的 特别当下载别人标记好的数据集时,很有可能提供的是xml格式的文件,那么如何将xml格式转为tx ...

  3. C#实现csv文件or xls文件转换为txt格式文件的源码

    在做C#对接PLC数据写入.采集时,项目有一个环节需要把 csv或xls格式的文件转换为txt格式的文件. 以下是核心源码,未做包装. 聪明的你可以把它写成winform, 但请不要以此为任何商业目的 ...

  4. 将Dos文档格式转换为Unix格式

    将Dos文档格式转换为Unix格式有多种方法这边列举一些,希望可以给大家提供些帮助 两种文本文档本质上的不同是由于不同系统下默认创建文件的行尾符不同,Windows系统以'\r\n'换行结尾,Lini ...

  5. R语言ggplot2可视化:应用pivot_longer函数将数据从宽格式转换为长格式、为dataframe的每一列绘制密度图和直方图(堆叠)

    R语言ggplot2可视化:应用pivot_longer函数将数据从宽格式转换为长格式.为dataframe的每一列绘制密度图和直方图(堆叠) 目录 R语言ggplot2可视化:应用pivot_lon ...

  6. TF之VGG系列:利用预先编制好的脚本data_convert .py文件将图片格式转换为tfrecord 格式

    TF之VGG系列:利用预先编制好的脚本data_convert .py文件将图片格式转换为tfrecord 格式 目录 转换代码 转换后的结果 转换代码 python data_convert2tfr ...

  7. linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

    音频转码工具 本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放. 支持 Linux/Windows/Mac 平台 因为是基于 JAVE 项目 ...

  8. java amr音频转码_jave: 音频转码工具,主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

    音频转码工具 本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放. 支持 Linux/Windows/Mac 平台 因为是基于 JAVE 项目 ...

  9. 计算机改硬盘格式,硬盘格式转换,详细教您如何将硬盘mbr格式转换为gpt格式

    大部分的新电脑预装的是win8系统,同时采用了GPT分区,很多用户想要重装成win7系统总是失败,原因在于分区格式不正确,只有将gpt格式分区转换成mbr格式再重装系统才能重装成功,下面,小编给大家讲 ...

最新文章

  1. GitHub开源:17M超轻量级中文OCR模型、支持NCNN推理
  2. InnoDB memcached插件部署
  3. 要学会Python爬虫都需要什么基础呢?
  4. 关于安装oracle 11G R2 for Windows X64问题
  5. 小师妹学JVM之:JVM中的Safepoints
  6. 脑电图伪差去除matlab,脑电图伪差的识别方法.ppt
  7. js改变select下拉框默认选择的option
  8. Unexpected end of JSON input while parsing near错误解决方式(网上的方法)
  9. freecodecamp_freeCodeCamp.org隐私权政策:问题与解答
  10. OA打造企业“最强大脑”
  11. 地理空间数据可视分析综述笔记
  12. 高通camera模块驱动指南资料介绍
  13. UGUI——RectTransform详解
  14. Bootstrap导航栏示例
  15. 5G LTE窄带物联网(NB-IoT) 5
  16. Web前端技术个人学习经验总结
  17. 什么是HSS?HSS有什么主要功能?HSS与HLR的区别是什么
  18. barrnap:预测基因组上的核糖体RNA
  19. 读书笔记软件调试之道 :问题的核心-重现问题
  20. python setuptools工具使用解析

热门文章

  1. 怎么把一副图片用PS调成简笔画?
  2. 关于设置系统声音的方法
  3. python + pyqt5 自制exe 随机换壁纸
  4. pandas 数据合并 pd.join() pd.merge() pd.crosstab() pd.concat()
  5. android 启动视频,android 启动页面全屏播放视频
  6. android设置左右声道音量,android控制左右声道实例
  7. oracle试算平衡表查询,介绍一下余额试算平衡表的计算方法
  8. 物流管理扫码器识别不了条码怎么办
  9. 海尔简爱S15电脑使用U盘来重新安装Win10系统教学
  10. 记一次天池比赛 - 性能挑战赛道