1、给图像数据集中的每张图片重新按顺序命名
import os.path def rename(img_folder,num): for img_name in os.listdir(img_folder): # os.listdir(): 列出路径下所有的文件 #os.path.join() 拼接文件路径 src = os.path.join(img_folder, img_name) #src:要修改的目录名 dst = os.path.join(img_folder, 'image_'+str(num) + '.jpg') #dst: 修改后的目录名 注意此处str(num)将num转化为字符串,继而拼接 num= num+1 os.rename(src, dst) #用dst替代src def main(): img_folder0 = 'picturesets/' #图片的文件夹路径 直接放你的文件夹路径即可 num=1 rename(img_folder0,num) if __name__=="__main__": main()
2、打乱图片数据集并批量改名
# -*- coding:utf-8 -*- import os import random class ImageRename(): def __init__(self): self.path = 'picturesets' # 图片所在路径 def rename(self): filelist = os.listdir(self.path) random.shuffle(filelist) #打乱图片集 total_num = len(filelist) i = 1 for item in filelist: if item.endswith('.jpg'): src = os.path.join(os.path.abspath(self.path), item) dst = os.path.join(os.path.abspath(self.path), 'img' + format(str(i), '0>3s') + '.jpg') #format ()的用法‘0>3s’ 3是置为数,>是控制字符从后往前占的位置,不够的位数补0,如format (str (1),'0>3s')输出结果为001,若format (str (1),'0<3s')输出结果为100 os.rename(src, dst) print('converting %s to %s ...' % (src, dst)) i = i + 1 print('total %d to rename & converted %d jpgs' % (total_num, i)) if __name__ == '__main__': newname = ImageRename() newname.rename()
3、给图像重命名之后用labelimg标注图片会报错:error opening file
可用以下代码解决:
import os from tqdm import tqdm from PIL import Image dir_origin_path = "E:/shujuji/data/images/train" dir_save_path = "E:/shujuji/data/train" img_names = os.listdir(dir_origin_path) for img_name in tqdm(img_names): if img_name.lower().endswith(('.bmp', '.dib', '.png', '.jpg', '.jpeg', '.pbm', '.pgm', '.ppm', '.tif', '.tiff')): image_path = os.path.join(dir_origin_path, img_name) image = Image.open(image_path) image = image.convert('RGB') if not os.path.exists(dir_save_path): os.makedirs(dir_save_path) image.save(os.path.join(dir_save_path, img_name))
1、如何给图像数据集中所有图片按照自定义格式命名;2、打乱图像数据集并批量命名;3、LabelImg报错:error opening file
于 2022-11-19 19:40:02 首次发布