labelImg标注的 xml格式数据如下:

单个xml文件数据打开如下:

python实现labelImg标注的 xml格式数据转换成 txt格式数据的代码xml2txt.py如下:

# -*- coding: utf-8 -*-
import os
import xml.etree.ElementTree as ETdirpath = 'raw_data/xml_raw'  # 原来存放xml文件的目录
newdir = 'raw_data/txt'                # 修改label后形成的txt目录if not os.path.exists(newdir):os.makedirs(newdir)dict_info = {'1': 0, '2': 1, '0': 2}              # 有几个 属性 填写几个label namesfor fp in os.listdir(dirpath):if fp.endswith('.xml'):root = ET.parse(os.path.join(dirpath, fp)).getroot()xmin, ymin, xmax, ymax = 0, 0, 0, 0sz = root.find('size')width = float(sz[0].text)height = float(sz[1].text)filename = root.find('filename').textfor child in root.findall('object'):  # 找到图片中的所有框sub = child.find('bndbox')  # 找到框的标注值并进行读取label = child.find('name').textlabel_ = dict_info.get(label)if label_:label_ = label_else:label_ = 0xmin = float(sub[0].text)ymin = float(sub[1].text)xmax = float(sub[2].text)ymax = float(sub[3].text)try:  # 转换成yolov3的标签格式,需要归一化到(0-1)的范围内x_center = (xmin + xmax) / (2 * width)x_center = '%.6f' % x_centery_center = (ymin + ymax) / (2 * height)y_center = '%.6f' % y_centerw = (xmax - xmin) / widthw = '%.6f' % wh = (ymax - ymin) / heighth = '%.6f' % hexcept ZeroDivisionError:print(filename, '的 width有问题')with open(os.path.join(newdir, fp.split('.xml')[0] + '.txt'), 'a+') as f:f.write(' '.join([str(label_), str(x_center), str(y_center), str(w), str(h) + '\n']))
print('ok')

转换后完成如下:

单个txt文件数据打开如下:

转载自:https://blog.csdn.net/weixin_42812527/article/details/103719299
感谢大佬“后青春诗ing”

python批量实现labelImg标注的 xml格式数据转换成 txt格式保存相关推荐

  1. TensorFlow学习笔记之 bmp格式、txt格式数据转换成tfrecord 格式

    目录 一.前言 二.bmp 格式数据转换成 tfrecord 格式的代码 三.txt 格式数据转换成 tfrecord 格式的代码 一.前言 之前我们讲过了关于 tfrecord 格式的相关内容,在这 ...

  2. python实现对LabelImg标注的xml文件修改其标签名字

    使用labelImg标注数据时,通过python批量修改已经标注的数据标签名字,例如,本程序将标注生成的xml文件中的目标名字"zero"批量修改为"num", ...

  3. 【Python 实操】labelImg标注的xml格式转换为yolo的txt文件

    [Python 实操]labelImg标注的xml格式转换为yolo的txt文件 背景 YOLO家族开枝散叶(尤其是YOLOv5)的广泛应用就涉及到图像的标注与文件格式转换,常用的标注工具有 Labe ...

  4. HTML批量删除标记,批量删除LabelImg制作的.xml中的部分标签值(删除.xml的节点值)...

    概述 自己在用labelImg打好标签后,想只用其中几类训练,不想训练全部类别,又不想重新打标生成.xml文件,因此想到这个办法:直接在.xml文件中删除原有的不需要的标签类及其属性. 打标时标签名出 ...

  5. 09: xmltodict 模块将xml格式转成json格式

    1.1 : xmltodict 模块将xml格式转成json格式 <?xml version="1.0"?> <!--#版本号--> <data> ...

  6. python m4a转mp3_python脚本实现音频m4a格式转成MP3格式

    群里看到有人询问:谁会用python将微信音频文件后缀m4a格式转成mp3格式,毫不犹豫回了句:我会.然后就私下聊起来了 解决方法介绍如下: 工具:windows系统,python2.7,转换库ffm ...

  7. python使用openCV加载图像、并将BGR格式转换成HSV格式、定义HSV格式中需要分离颜色的掩码(掩模)区间(mask)、并使用mask信息进行颜色分离、BGR格式的图像转化为RGB、并可视化

    python使用openCV加载图像.并将BGR格式转换成HSV格式.定义HSV格式中需要分离颜色的掩码(掩模)区间(mask).并使用mask信息进行颜色分离.将BGR格式的图像转化为RGB.可视化 ...

  8. python datetime格式转换_分别用Excel和python进行日期格式转换成时间戳格式

    最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...

  9. python to_excel 时间格式_分别用Excel和python进行日期格式转换成时间戳格式

    最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...

最新文章

  1. 人民大学提出听音识物AI框架,不用人工标注,嘈杂环境也能Hold住,还可迁移到物体检测...
  2. 蒟蒻JZZ的犯错汇总
  3. Leetcode 621. 任务调度器 解题思路及C++实现
  4. 用GAN炼制长生不老药,这么玄幻的公司竟然能拿到药企投资
  5. pwm gpio android,USB转I2C适配器 模块 USB-IIC/GPIO/PWM/ADC 支持Android 安卓 树莓派
  6. 通达信版弘历软件指标_通达信仿弘历软件的六彩神龙指标免费源码公式_通达信指标公式_指标公式网...
  7. 计算机文献检索过程,计算机文献检索的基本方法与策略
  8. python3超简代码爬取桌面壁纸
  9. Systemverilog中@和wait区别
  10. 乐Pro3 乐视X720/乐视X722通刷官方线刷包_救砖包_解账户锁
  11. java币值转换_币值转换
  12. Android studio真机调试(用小米10s为例)
  13. SECURITY:加密与解密,AIDE入侵检测系统,扫面与抓包
  14. c语言二级考试知识点,2016年计算机二级考试C语言知识点大全
  15. 软件开发中的10个认知偏差
  16. php 银行支付通道_PHP银联在线支付接口的开发实例
  17. PTA-7-24猜数字游戏,比照和分析。
  18. python版本升级后编译_ubuntu18.04下源码编译安装最新版本Python3
  19. 中文大写数字/金额转化
  20. 计算机培训的教案,教师计算机培训-教案.doc

热门文章

  1. 3dsmax动画一、移动,旋转和缩放动画。
  2. websocket-fmp4播放器wsPlayer
  3. APache安装步骤
  4. 仿王者荣耀对战资料选项中的【雷达网图展示详细数据】
  5. 美团外卖在全球已超过1亿次下载;福成股份1万头肉牛繁殖场于2021年12月18日建成 | 知消...
  6. swagger ui 怎么输入对象_Swagger UI 传入对象类型参数
  7. 无线发射功率以及接收灵敏度
  8. wpf Rectangle
  9. 简单理解集中式系统和分布式系统
  10. 树莓派4B更换清华源和没有公钥报错