使用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 time模块用法实例详解
Sep 11 Python
Python实现删除Android工程中的冗余字符串
Jan 19 Python
ubuntu17.4下为python和python3装上pip的方法
Jun 12 Python
Python实现的简单排列组合算法示例
Jul 04 Python
python ftp 按目录结构上传下载的实现代码
Sep 12 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
Python3.5实现的三级菜单功能示例
Mar 25 Python
Python中的asyncio代码详解
Jun 10 Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 Python
Python序列化与反序列化pickle用法实例
Nov 11 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
python3.9实现pyinstaller打包python文件成exe
Dec 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
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
上传多个文件的PHP脚本
2006/11/26 PHP
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
jQuery源码分析之Event事件分析
2010/06/07 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
Bootstrap表单布局
2016/07/19 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
[01:19:11]Ti4 循环赛第二日 NaVi.us vs iG
2014/07/11 DOTA
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Python小进度条显示代码
2019/03/05 Python
keras中的backend.clip用法
2020/05/22 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
软件配置管理有什么好处
2015/04/15 面试题
卫校毕业生自我鉴定
2013/10/31 职场文书
采购部岗位职责
2013/11/24 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python