使用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自定义解析简单xml格式文件的方法
May 11 Python
Python实现模拟登录及表单提交的方法
Jul 25 Python
PyQt5每天必学之像素图控件QPixmap
Apr 19 Python
python 3.6.4 安装配置方法图文教程
Sep 18 Python
Django Rest framework之认证的实现代码
Dec 17 Python
Python根据当前日期取去年同星期日期
Apr 14 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
基于Python实现天天酷跑功能
Jan 06 Python
Python实现随机爬山算法
Jan 29 Python
Pytorch 图像变换函数集合小结
Feb 01 Python
PyQt QMainWindow的使用示例
Mar 24 Python
python中取整数的几种方法
Nov 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
Session的工作方式
2006/10/09 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
网页常用特效代码整理
2006/06/23 Javascript
深入认识JavaScript中的函数
2007/01/22 Javascript
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
Vue.js进阶知识点总结
2018/04/01 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
详解Django中的权限和组以及消息
2015/07/23 Python
python 生成器协程运算实例
2017/09/04 Python
Python数组并集交集补集代码实例
2020/02/18 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
CSS3 选择器 基本选择器介绍
2012/01/21 HTML / CSS
2014年小学重阳节活动策划方案
2014/09/16 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android