首先将 准备两个文件夹:Annotations(有已经标注好的.xml文件)和Images(图片)
一、统一将图片名改为int型
python代码如下:
# 修改图片的命名,按顺序
import os
class BatchRename():
'''
批量重命名文件夹中的图片文件
'''
def __init__(self):
self.path = r'E:\yq\hat_datasets\hat-coco\changenameimages' # 表示需要命名处理的文件夹
self.save_path = r'E:\yq\hat_datasets\hat-coco\ChangeImageName' # 保存重命名后的图片地址
def rename(self):
filelist = os.listdir(self.path) # 获取文件路径
total_num = len(filelist) # 获取文件长度(个数)
i = 0 # 表示文件的命名是从0开始的
for item in filelist:
print(item)
if item.endswith('.jpg'): # 初始的图片的格式为jpg格式的(或者源文件是png格式及其他格式,后面的转换格式就可以调整为自己需要的格式即可)
src = os.path.join(os.path.abspath(self.path), item) # 当前文件中图片的地址
dst = os.path.join(os.path.abspath(self.save_path), str(i) + '.jpg') # 处理后文件的地址和名称,可以自己按照自己的要求改进
try:
os.rename(src, dst)
print('converting %s to %s ...' % (src, dst))
i = i + 1
except:
continue
print('total %d to rename & converted %d jpgs' % (total_num, i))
if __name__ == '__main__':
demo = BatchRename()
demo.rename()
二、修改Annotations文件夹中的.xml的命名,同图片的命名一致
代码如下:
# 修改.xml文件的命名,保持内容不变
import os
i = 0
for filename in os.listdir('E:/yq/hat_datasets/hat-coco/Annotations/'):
newname = str(i) + ".xml" #可以是各种后缀名的文件类型
os.rename('E:/yq/hat_datasets/hat-coco/Annotations/'+filename, 'E:/yq/hat_datasets/hat-coco/Annotations/'+newname)
i += 1
三、修改.xml文件里filename的命名,保持与.xml一致,但一定要有图片的后缀名(.jpg或者.png)
代码如下:
import os
from xml.etree.ElementTree import parse, Element
out_dir = 'E:/yq/hat_datasets/voc_hat_coco/annotations/newval/' ##这里是保存的目标文件夹
b &#