python批量实现labelImg标注的 xml格式数据转换成 txt格式保存
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格式保存相关推荐
- TensorFlow学习笔记之 bmp格式、txt格式数据转换成tfrecord 格式
目录 一.前言 二.bmp 格式数据转换成 tfrecord 格式的代码 三.txt 格式数据转换成 tfrecord 格式的代码 一.前言 之前我们讲过了关于 tfrecord 格式的相关内容,在这 ...
- python实现对LabelImg标注的xml文件修改其标签名字
使用labelImg标注数据时,通过python批量修改已经标注的数据标签名字,例如,本程序将标注生成的xml文件中的目标名字"zero"批量修改为"num", ...
- 【Python 实操】labelImg标注的xml格式转换为yolo的txt文件
[Python 实操]labelImg标注的xml格式转换为yolo的txt文件 背景 YOLO家族开枝散叶(尤其是YOLOv5)的广泛应用就涉及到图像的标注与文件格式转换,常用的标注工具有 Labe ...
- HTML批量删除标记,批量删除LabelImg制作的.xml中的部分标签值(删除.xml的节点值)...
概述 自己在用labelImg打好标签后,想只用其中几类训练,不想训练全部类别,又不想重新打标生成.xml文件,因此想到这个办法:直接在.xml文件中删除原有的不需要的标签类及其属性. 打标时标签名出 ...
- 09: xmltodict 模块将xml格式转成json格式
1.1 : xmltodict 模块将xml格式转成json格式 <?xml version="1.0"?> <!--#版本号--> <data> ...
- python m4a转mp3_python脚本实现音频m4a格式转成MP3格式
群里看到有人询问:谁会用python将微信音频文件后缀m4a格式转成mp3格式,毫不犹豫回了句:我会.然后就私下聊起来了 解决方法介绍如下: 工具:windows系统,python2.7,转换库ffm ...
- python使用openCV加载图像、并将BGR格式转换成HSV格式、定义HSV格式中需要分离颜色的掩码(掩模)区间(mask)、并使用mask信息进行颜色分离、BGR格式的图像转化为RGB、并可视化
python使用openCV加载图像.并将BGR格式转换成HSV格式.定义HSV格式中需要分离颜色的掩码(掩模)区间(mask).并使用mask信息进行颜色分离.将BGR格式的图像转化为RGB.可视化 ...
- python datetime格式转换_分别用Excel和python进行日期格式转换成时间戳格式
最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...
- python to_excel 时间格式_分别用Excel和python进行日期格式转换成时间戳格式
最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...
最新文章
- 人民大学提出听音识物AI框架,不用人工标注,嘈杂环境也能Hold住,还可迁移到物体检测...
- 蒟蒻JZZ的犯错汇总
- Leetcode 621. 任务调度器 解题思路及C++实现
- 用GAN炼制长生不老药,这么玄幻的公司竟然能拿到药企投资
- pwm gpio android,USB转I2C适配器 模块 USB-IIC/GPIO/PWM/ADC 支持Android 安卓 树莓派
- 通达信版弘历软件指标_通达信仿弘历软件的六彩神龙指标免费源码公式_通达信指标公式_指标公式网...
- 计算机文献检索过程,计算机文献检索的基本方法与策略
- python3超简代码爬取桌面壁纸
- Systemverilog中@和wait区别
- 乐Pro3 乐视X720/乐视X722通刷官方线刷包_救砖包_解账户锁
- java币值转换_币值转换
- Android studio真机调试(用小米10s为例)
- SECURITY:加密与解密,AIDE入侵检测系统,扫面与抓包
- c语言二级考试知识点,2016年计算机二级考试C语言知识点大全
- 软件开发中的10个认知偏差
- php 银行支付通道_PHP银联在线支付接口的开发实例
- PTA-7-24猜数字游戏,比照和分析。
- python版本升级后编译_ubuntu18.04下源码编译安装最新版本Python3
- 中文大写数字/金额转化
- 计算机培训的教案,教师计算机培训-教案.doc