python对标注的坐标进行扩展

本文介绍了一个使用Python脚本批量处理XML文件中坐标的方法,通过读取XML文件中的宽度和高度信息,然后对xmin和xmax坐标进行相应的数值转换,适用于图像处理和标注数据修正的场景。
#coding=utf-8
##此文件放在要写入文件的文件夹里
import glob
import re

aa=[]
aa=glob.glob(r'D:\sales\all_label\*.xml')#读入所有的xml文件,得到a列表
print(aa) #aa列表存储所有xml文件名

for a in aa:
	with open(a, 'r', encoding='UTF-8') as fo:
		contents = fo.readlines() #把所有行,存进contents列表里

	for content in contents:#找宽和高
		
		width=re.search('<width>(.*)</width>',content) 
		if width:#如果非空
			w=int(width.group(1))  #宽度
			
		height=re.search('<height>(.*)</height>',content) 
		if height:
			h=int(height.group(1))  #高度
			break #找完高度跳出循环
			
	for content in contents:	#content是一行的字符串
		
		xmin=re.search('<xmin>(.*)</xmin>', content) 
		if xmin:#如果非空
			content = re.sub('\d+',str(w-int(xmin.group(1))), content)#\d+代表替换掉数字 
		
		xmax=re.search('<xmax>(.*)</xmax>', content) 
		if xmax:#如果非空
			content = re.sub('\d+',str(w-int(xmax.group(1))), content) 
			
		#下面是逐行写入
		newname=a.lstrip("D:\\sales\\all_label\\") #去掉前缀,不会改变a自身
		with open('11_'+newname, 'a', encoding='UTF-8') as fs:
			fs.write(content)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值