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实现上传样本到virustotal并查询扫描信息的方法
Oct 05 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
python 循环while和for in简单实例
Aug 16 Python
python对于requests的封装方法详解
Jan 03 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
python绘制已知点的坐标的直线实例
Jul 04 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
Apr 08 Python
Python操作Jira库常用方法解析
Apr 10 Python
Python退出时强制运行一段代码的实现方法
Apr 29 Python
python爬取新闻门户网站的示例
Apr 25 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 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
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
Smarty3配置及入门语法
2017/02/22 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
python实现bucket排序算法实例分析
2015/05/04 Python
全面了解python中的类,对象,方法,属性
2016/09/11 Python
python中os模块详解
2016/10/14 Python
python算法表示概念扫盲教程
2017/04/13 Python
python处理xml文件的方法小结
2017/05/02 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
2018/10/29 Python
Python操作json的方法实例分析
2018/12/06 Python
解决python运行效率不高的问题
2020/07/20 Python
Python运算符+与+=的方法实例
2021/02/18 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
工作失误检讨书范文大全
2014/01/13 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
党员政治学习材料
2014/05/14 职场文书
小学课外活动总结
2014/07/09 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis