使用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抓取京东商城手机列表url实例代码
Dec 18 Python
Python中random模块生成随机数详解
Mar 10 Python
利用Python开发微信支付的注意事项
Aug 19 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
Mar 23 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
使用python进行广告点击率的预测的实现
Jul 04 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
你需要学会的8个Python列表技巧
Jun 24 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
python中的yield from语法快速学习
Nov 06 Python
Python词云的正确实现方法实例
May 08 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/11/16 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
用javascript编写的第一人称射击游戏
2007/02/25 Javascript
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python中实现switch功能实例解析
2018/01/11 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
python字典与json转换的方法总结
2020/12/28 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
医药代表个人的求职信分享
2013/12/08 职场文书
装修施工安全责任书
2014/07/24 职场文书
求职自我推荐信
2015/03/24 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
行政复议决定书
2015/06/24 职场文书
python编写函数注意事项总结
2021/03/29 Python
一文搞懂Redis中String数据类型
2022/04/03 Redis