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登录Gmail并发送Gmail邮件的教程
Apr 17 Python
Python脚本实现Web漏洞扫描工具
Oct 25 Python
Scrapy-redis爬虫分布式爬取的分析和实现
Feb 07 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
Jun 04 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
django中瀑布流写法实例代码
Oct 14 Python
Python 面向对象之封装、继承、多态操作实例分析
Nov 21 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
python实现智能语音天气预报
Dec 02 Python
python调用百度AI接口实现人流量统计
Feb 03 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 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的一些小问题
2010/07/03 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
python里将list中元素依次向前移动一位
2014/09/12 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
Python 如何对文件目录操作
2020/07/10 Python
python如何变换环境
2020/07/21 Python
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
物流管理专业大学生自荐信
2013/10/04 职场文书
建议书标准格式
2014/03/12 职场文书
大学毕业生推荐信
2014/07/09 职场文书
管理失职检讨书
2015/05/05 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
事业单位岗位说明书
2015/10/08 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL