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实现从百度API获取天气的方法
Mar 11 Python
简单介绍Python的Django框架的dj-scaffold项目
May 30 Python
Python爬虫:通过关键字爬取百度图片
Feb 17 Python
pandas Dataframe行列读取的实例
Jun 08 Python
nohup后台启动Python脚本,log不刷新的解决方法
Jan 14 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
Django对models里的objects的使用详解
Aug 17 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
python中必要的名词解释
Nov 20 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
pip install 使用国内镜像的方法示例
Apr 03 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 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
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
Javascript 面试题随笔
2011/03/31 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
javascript 取小数点后几位几种方法总结
2017/08/02 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
package.json配置文件构成详解
2019/08/27 Javascript
基于javascript实现碰撞检测
2020/03/12 Javascript
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
Python中super关键字用法实例分析
2015/05/28 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
业务代表的岗位职责
2013/11/16 职场文书
英语系本科生求职信范文
2013/12/18 职场文书
应届护士求职信范文
2014/01/26 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
Python 如何解决稀疏矩阵运算
2021/05/26 Python