使用python批量修改XML文件中图像的depth值

更多编程教程请到:菜鸟教程 https://www.piaodoo.com/

友情链接:好看站 http://www.nrso.net/

高州阳光论坛https://www.hnthzk.com/

最近刚刚接触深度学习,并尝试学习制作数据集,制作过程中发现了一个问题,现在跟大家分享一下。问题是这样的,在制作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成功!')</pre>

上面的代码的思路是,读取XML文件,并修改depth节点的内容修改为3,通过循环读取XML文件,实现批量化修改XML文件中depth的值。

修改前后的结果

XML修改前depth的值:

修改前depth的值为1

XML修改后depth的值:

depth成功修改成3

这样,就可以使用自己制作的voc数据集进行训练了。我选的这个方法可能比较傻

到此这篇关于使用python批量修改XML文件中图像的depth值的文章就介绍到这了,更多相关python批量修改XML内容请搜索菜鸟教程www.piaodoo.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持菜鸟教程www.piaodoo.com!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值