Python批量修改xml的坐标值全部转为整数的实例代码


Posted in Python onNovember 26, 2020

发现一个有意思的现象,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)

转完之后,标签就可以正常看到了

Python批量修改xml的坐标值全部转为整数的实例代码

到此这篇关于Python批量修改xml的坐标值全部转为整数的文章就介绍到这了,更多相关Python批量修改xml内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python简单连接MongoDB数据库的方法
Mar 15 Python
Python Django使用forms来实现评论功能
Aug 17 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
pandas多级分组实现排序的方法
Apr 20 Python
django框架之cookie/session的使用示例(小结)
Oct 15 Python
Python实现按逗号分隔列表的方法
Oct 23 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
Python编程快速上手——强口令检测算法案例分析
Feb 29 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 Python
Python并发爬虫常用实现方法解析
Nov 19 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 Python
Django filter动态过滤与排序实现过程解析
Nov 26 #Python
python中用ctypes模拟点击的实例讲解
Nov 26 #Python
python爬虫分布式获取数据的实例方法
Nov 26 #Python
python分布式爬虫中消息队列知识点详解
Nov 26 #Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 #Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 #Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
Nov 26 #Python
You might like
PHP数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
微信小程序 教程之事件
2016/10/18 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
Python中实现结构相似的函数调用方法
2015/03/10 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
python的concat等多种用法详解
2018/11/28 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
python 模拟登录B站的示例代码
2020/12/15 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
大专自我鉴定范文
2013/10/01 职场文书
助人为乐表扬信范文
2014/01/14 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS