使用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 相关文章推荐
举例讲解Linux系统下Python调用系统Shell的方法
Nov 07 Python
python机器学习案例教程——K最近邻算法的实现
Dec 28 Python
TensorFlow深度学习之卷积神经网络CNN
Mar 09 Python
python写入并获取剪切板内容的实例
May 31 Python
python 创建一个空dataframe 然后添加行数据的实例
Jun 07 Python
浅谈Pandas 排序之后索引的问题
Jun 07 Python
一行代码让 Python 的运行速度提高100倍
Oct 08 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 Python
由Python编写的MySQL管理工具代码实例
Apr 09 Python
Django使用Jinja2模板引擎的示例代码
Aug 09 Python
python next()和iter()函数原理解析
Feb 07 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
十天学会php(3)
2006/10/09 PHP
PHP Document 代码注释规范
2009/04/13 PHP
php 图片上传类代码
2009/07/17 PHP
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
简介JavaScript中的getSeconds()方法的使用
2015/06/10 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
什么时候不能在 Node.js 中使用 Lock Files
2019/06/24 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
python实现跨文件全局变量的方法
2014/07/07 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
How TDD works
2012/09/30 面试题
出国导师推荐信
2014/01/16 职场文书
元旦促销方案
2014/03/15 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python