使用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查询mysql中文乱码问题
Nov 09 Python
python中requests模块的使用方法
Apr 08 Python
python遍历数组的方法小结
Apr 30 Python
用Python将动态GIF图片倒放播放的方法
Nov 02 Python
python的staticmethod与classmethod实现实例代码
Feb 11 Python
Python切片工具pillow用法示例
Mar 30 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
Oct 21 Python
TFRecord格式存储数据与队列读取实例
Jan 21 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
python入门教程之基本算术运算符
Nov 13 Python
Python 数据可视化工具 Pyecharts 安装及应用
Apr 20 Python
使用pd.merge表连接出现多余行的问题解决
Jun 16 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
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
用PHP代码给图片加水印
2015/07/01 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
innerText和textContent对比及使用介绍
2013/02/27 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
vue组件创建的三种方式小结
2020/02/03 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
Python类的动态修改的实例方法
2017/03/24 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
keras:model.compile损失函数的用法
2020/07/01 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
介绍一下游标
2012/01/10 面试题
找工作最新求职信
2013/12/22 职场文书
教师演讲稿范文
2014/01/08 职场文书
女方回门宴答谢词
2014/01/14 职场文书
学生安全承诺书
2014/05/22 职场文书
新党章的学习心得体会
2014/11/07 职场文书
优秀教师申报材料
2014/12/16 职场文书
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL