1、如何给图像数据集中所有图片按照自定义格式命名;2、打乱图像数据集并批量命名;3、LabelImg报错:error opening file

本文介绍如何批量处理图像数据集,包括图片重命名、打乱顺序及批量重命名的方法,并提供了解决重命名后使用labelimg进行标注时出现错误的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一鹿向晗99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值