批量修改标签和图片的名字
在深度学习中,数据的清洗是非常重要的一个环节。今天,我想向大家分享一下如何批量处理图片和标签的名字和进行移动。
一般我们获取得到的数据集都有若干个文件夹,比如:
我们可以看到,两个文件夹里面的数据命名格式相仿:
所以我们需要对他们进行处理,使得两个文件夹中的图片的标签对应上。在下面我代码中,我们将会对其进行对应的改名和保存到同一个文件夹:
import shutil
import os
#输入原始图片和标签的地址
img_path = ''
label_path = ''
#输入目的图片和标签的地址
new_img_path = ''
new_label_path = ''
#保存原始的图片和标签名字(带后缀名)
img_list = os.listdir(img_path)
label_list = os.listdir(label_path)
#保存原始的图片和标签名字(不带后缀名)
img_name = []
label_name = []
#获得不带后缀名的图片名字
for img in img_list:
a, b = img.split('.')
img_name.append(a)
#获得不带后缀名的标签名字
for label in label_list:
a, b = label.split('.')
label_name.append(a)
i = 0
for img in img_name:
for label in label_name:
#找到对应的图片和标签
if img == label:
n = 6 - len(str(i))
#原始地址
img_src = os.path.join(img_path, img+ '.jpg')
label_src = os.path.join(label_path, label+ '.xml')
#目的地址
img_dst = os.path.join(new_img_path, n*str(0)+str(i)+".jpg")
label_dst = os.path.join(new_label_path, n*str(0)+str(i)+".xml")
#改名并保存倒新的地址
shutil.move(img_src, img_dst)
shutil.move(label_src, label_dst)
i = i + 1
在地址上填写你自己的地址就可以了。
下面我们看看操作结果: