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开发之基于thread线程搜索本地文件的方法
Nov 11 Python
浅谈python下tiff图像的读取和保存方法
Dec 04 Python
Python命名空间的本质和加载顺序
Dec 17 Python
Python3.5局部变量与全局变量作用域实例分析
Apr 30 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
简单了解python的一些位运算技巧
Jul 13 Python
Python_查看sqlite3表结构,查询语句的示例代码
Jul 17 Python
Python实现代码统计工具
Sep 19 Python
pytorch中的weight-initilzation用法
Jun 24 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
Python日志器使用方法及原理解析
Sep 27 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 24 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
第七节 类的静态成员 [7]
2006/10/09 PHP
PHP查看SSL证书信息的方法
2016/09/22 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
angular过滤器实现排序功能
2017/06/27 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
p5.js入门教程之图片加载
2018/03/20 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
python反转列表的三种方式解析
2019/11/08 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
大学生职业规划论文
2014/01/11 职场文书
实验室安全管理制度
2015/08/05 职场文书
服装店员工管理制度
2015/08/07 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python