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随机生成数模块random使用实例
Apr 13 Python
python读取二进制mnist实例详解
May 31 Python
使用Pyinstaller的最新踩坑实战记录
Nov 08 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
Python 实现12306登录功能实例代码
Feb 09 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
解决python super()调用多重继承函数的问题
Jun 26 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
浅析python函数式编程
Sep 26 Python
详解pytorch创建tensor函数
Mar 22 Python
Python编写车票订购系统 Python实现快递收费系统
Aug 14 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读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
PHP CURL使用详解
2019/03/21 PHP
PHP钩子实现方法解析
2019/05/21 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
xml转json的js代码
2012/08/28 Javascript
js单词形式的运算符
2014/05/06 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
JavaScript获取时区实现过程解析
2020/09/24 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
在Django的session中使用User对象的方法
2015/07/23 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
保险公司早会主持词
2014/03/22 职场文书
机关保密承诺书
2014/06/03 职场文书
学校标语大全
2014/06/19 职场文书
消防志愿者活动方案
2014/08/23 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
作风建设年度心得体会
2014/10/29 职场文书
画展观后感
2015/06/17 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
Oracle使用别名的好处
2022/04/19 Oracle