Python批量修改xml的坐标值全部转为整数的实例代码
作者:一只有理想的喵(>^ω^<) 发布时间:2021-10-29 00:57:50
标签:Python,批量修改,xml
发现一个有意思的现象,labelimg打开图片和xml标签时候,看不到标注好的框框,仔细查看了xml文件,没发现什么异常,后面试一下,才发现是不能识别xml里的坐标值有小数点的情况。只能四舍五入都转成整数。
如:
<bndbox>
<xmin>1404.35</xmin>
<ymin>0</ymin>
<xmax>1458.56</xmax>
<ymax>111.96</ymax>
</bndbox>
# *_* coding : UTF-8 *_*
# 开发人员: csu·pan-_-||
# 开发时间: 2020/11/25 21:42
# 文件名称: resize_img_xml.py
# 开发工具: PyCharm
# 功能描述: 改变xml文件里的某个属性
import os
import xml.etree.ElementTree as ET
path = r'C:\Users\Administrator\Desktop\JPEGImages' # 包含xml的文件夹路径
def edit_xml(xml_file):
"""
修改xml文件
:param xml_file:xml文件的路径
:return:
"""
all_xml_file = os.path.join(path, xml_file)
tree = ET.parse(all_xml_file)
print(all_xml_file)
objs = tree.findall('object')
for ix, obj in enumerate(objs):
obj_bnd = obj.find('bndbox')
obj_xmin = obj_bnd.find('xmin')
obj_ymin = obj_bnd.find('ymin')
obj_xmax = obj_bnd.find('xmax')
obj_ymax = obj_bnd.find('ymax')
xmin = float(obj_xmin.text)
ymin = float(obj_ymin.text)
xmax = float(obj_xmax.text)
ymax = float(obj_ymax.text)
obj_xmin.text = str(round(xmin)) #四舍五入转为整数
obj_ymin.text = str(round(ymin))
obj_xmax.text = str(round(xmax))
obj_ymax.text = str(round(ymax))
tree.write(all_xml_file, method='xml', encoding='utf-8') # 覆盖更新xml文件
if __name__ == '__main__':
files = os.listdir(path) # 获取文件名列表
for i, file in enumerate(files):
if file.endswith('.xml'):
edit_xml(file)
转完之后,标签就可以正常看到了
来源:https://blog.csdn.net/qq_36563273/article/details/110122238
0
投稿
猜你喜欢
- MySQL密码正确却无法本地登录-1045 Access denied for user 'root'@'local
- 判断字段是否存在:DROP PROCEDURE IF EXISTS schema_change; DELIMITER //CREATE PR
- 0.偶然间看到一个奇怪的现象>>> x = 1>>> a = var()>>> a[&
- 前言:之前自己做一个uni-app的项目的时候前端需要实现一个比较复杂的动态tab和swiper切换的功能,但是由于自己前端抠脚的原因没有写
- 在vue中使用ant-design-vue组件官方地址:Ant Design Vue1. 安装首先使用vue-cli创建项目,然后进入项目,
- Python的标准库中的os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后
- 目录前言redo log的产生redo log 的提交redo log 的落盘及通知通知用户线程总结前言最开始
- 通过设置全局随机种子使得每次的训练结果相同可以复现def seed_torch(seed=2018): rando
- 闭包(closure)不是什么可怕的东西。如果用对了地方,它们其实可以很强大。闭包就是由其他函数动态生成并返回的函数,通俗地讲,在一个函数的
- 1、获取当前年月日时分秒# -*- encoding=utf-8 -*-import datetimenow = datetime.date
- 该章节我们将要学习如何将 word 文件转为 PDF文件,其实网上有很多种生成 PDF 的教程,不过绝大多数都是以 windows 为主的,
- 一、步骤要从 JPEG 图像中获取经纬度信息,可以使用 Python 的 PIL(Python Imaging Library)库。以下是一
- APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持
- 不比2000有个 开关的程序 所以上网找了下教程 自己写个批处理 自动启动服务 哇哈哈 突然觉得 只要有网络 语言不是啥大的障碍 写起来都差
- 对文件进行重命名直接贴代码: import ossrcFile = './actwork/linkFile/allExtL
- 最近用了pycharm,感觉还不错,就是pandas中Series、DataFrame的plot()方法不显示图片就给我结束了,但是我在ip
- 以前做音乐项目的时候,最让我们头痛的就是满足用户的问题。在音乐的领域,不要试图去满足所有用户这个定律得到了最充分的验证。究其原因,无非是音乐
- 当用cmd命令行运行python文件时,我们知道可以通过>python pyfile.py来运行python文件,此时的输出会直接打印
- MNIST数据集比较小,一般入门机器学习都会采用这个数据集来训练下载地址:yann.lecun.com/exdb/mnist/有4个有用的文
- 目录1. matplotlib 模块概述2. matplotlib.pyplot 相关方法3. matplotlib.pyplot 图表展示