使用python批量修改XML文件中图像的depth值


Posted in Python onJuly 22, 2020

最近刚刚接触深度学习,并尝试学习制作数据集,制作过程中发现了一个问题,现在跟大家分享一下。问题是这样的,在制作voc数据集时,我采集的是灰度图像,并已经用labelimg生成了每张图像对应的XML文件。训练时发现好多目标检测模型使用的训练集是彩色图像,因此特征提取网络的输入是m×m×3的维度的图像。所以我就想着把我采集的灰度图像的深度也改成3吧。批量修改了图像的深度后,发现XML中的depth也要由1改成3才行。如果重新对图像标注一遍生成XML文件的话太麻烦,所以就想用python批量处理一下。果然在网上找到了类似的代码,简单修改一下就可以实现我们想要的功能了。

全部代码如下

#coding:utf-8
import os
import os.path
import xml.dom.minidom
 
path='E:/data/ann/'#这里修改为自己存放XML文件的路径
files=os.listdir(path) #获取路径下的所有文件的名称
s=[]
for xmlFile in files: 
	  if not os.path.isdir(xmlFile): #判断是否是文件夹,不是文件夹才打开
		    print(xmlFile)
		
		    #将获取到的xml文件名送入到dom解析
		    dom=xml.dom.minidom.parse(os.path.join(path,xmlFile))
		    root=dom.documentElement
		
		    ###获取标签对depth之间的值
		    depth=root.getElementsByTagName('depth')
		    
        #修改相应标签的值
		    for i in range(len(depth)):
		        print(depth[i].firstChild.data)
		        a = depth[i].firstChild.data
		        print(type(a))
		        depth[i].firstChild.data=3
		        print(depth[i].firstChild.data)
 
		    #保存修改到xml文件中
		    with open(os.path.join(path,xmlFile),'w') as fh:
			      dom.writexml(fh)
			      print('修改depth成功!')

上面的代码的思路是,读取XML文件,并修改depth节点的内容修改为3,通过循环读取XML文件,实现批量化修改XML文件中depth的值。

修改前后的结果

XML修改前depth的值:

使用python批量修改XML文件中图像的depth值

XML修改后depth的值:

使用python批量修改XML文件中图像的depth值

这样,就可以使用自己制作的voc数据集进行训练了。我选的这个方法可能比较傻

到此这篇关于使用python批量修改XML文件中图像的depth值的文章就介绍到这了,更多相关python批量修改XML内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
浅谈Python中函数的参数传递
Jun 21 Python
python写入并获取剪切板内容的实例
May 31 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
Jul 04 Python
Python datetime模块使用方法小结
Jun 18 Python
tensorflow 动态获取 BatchSzie 的大小实例
Jun 30 Python
学python需要去培训机构吗
Jul 01 Python
python logging模块的使用详解
Oct 23 Python
python 实现倒计时功能(gui界面)
Nov 11 Python
python中复数的共轭复数知识点总结
Dec 06 Python
python 模拟登录B站的示例代码
Dec 15 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 Python
Python持续监听文件变化代码实例
Jul 22 #Python
Python不支持 i ++ 语法的原因解析
Jul 22 #Python
基于selenium及python实现下拉选项定位select
Jul 22 #Python
Python实现手绘图效果实例分享
Jul 22 #Python
Selenium及python实现滚动操作多种方法
Jul 21 #Python
如何在mac版pycharm选择python版本
Jul 21 #Python
python如何变换环境
Jul 21 #Python
You might like
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
php连接数据库代码应用分析
2011/05/29 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
获取body标签的两种方法
2011/10/13 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
JS画线(实例代码)
2013/11/20 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
Python多线程编程简单介绍
2015/04/13 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
Python中一行和多行import模块问题
2018/04/01 Python
对Python中画图时候的线类型详解
2019/07/07 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
python hash每次调用结果不同的原因
2019/11/21 Python
python算的上脚本语言吗
2020/06/22 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
教师岗位职责范本
2013/12/29 职场文书
安全检查管理制度
2014/02/02 职场文书
法律进机关实施方案
2014/03/12 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
2014年加油站工作总结
2014/12/04 职场文书
劳模事迹材料范文
2014/12/24 职场文书
党支部书记岗位职责
2015/02/15 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL