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中的一些类型转换函数小结
Feb 10 Python
python海龟绘图实例教程
Jul 24 Python
详解python中的json的基本使用方法
Dec 21 Python
python中itertools模块zip_longest函数详解
Jun 12 Python
tensorflow 获取变量&amp;打印权值的实例讲解
Jun 14 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
Jul 31 Python
python之yield和Generator深入解析
Sep 18 Python
Python tkinter实现图片标注功能(完整代码)
Dec 08 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Apr 04 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
Win下如何安装PHP的APC拓展
2013/08/07 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
vant实现购物车功能
2020/06/29 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
详解python之协程gevent模块
2018/06/14 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
django中ImageField的使用详解
2020/12/21 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
联强国际笔试题面试题
2013/07/10 面试题
会计专业毕业生求职信分享
2014/01/03 职场文书
写给老师的表扬信
2014/01/21 职场文书
装修协议书范本
2014/04/21 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
授权委托书格式范文
2014/08/02 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
python cv2图像质量压缩的算法示例
2021/06/04 Python