将图片依次进行编号

本文介绍了如何使用Matplotlib库中的函数对图像进行预处理,如调整大小、转换为Tensor并标准化,同时使用ImageFolder构建数据集,并为每个类别维护独特的文件名索引,以便重命名图片以避免名称冲突。

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

from matplotlib import image

transform = transforms.Compose([

    transforms.Resize((224, 224)),  # 调整图像大小

    transforms.ToTensor(),  # 将图像转换为Tensor

    transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))  # 标准化操作

])

dataset_path = './data3_dir/'

dataset = datasets.ImageFolder(root=dataset_path, transform=transform)

# 为每个类别维护一个索引

class_indices = {class_label: 0 for class_label in dataset.classes}

for idx, (image_path, label) in enumerate(dataset.samples):

    class_label = dataset.classes[label]

    class_indices[class_label] += 1

    # 在这里你可以将序号添加到图片文件名中,例如 "image1_class1.jpg"

    new_filename = f"image{class_indices[class_label]}_{class_label}.jpg"

    # 构造新的路径

    new_image_path = os.path.join(dataset_path, class_label, new_filename)

# 如果新路径已经存在,则递增索引,直到找到一个可用的文件名

    while os.path.exists(new_image_path):

        class_indices[class_label] += 1

        new_filename = f"image{class_indices[class_label]}_{class_label}.jpg"

        new_image_path = os.path.join(dataset_path, class_label, new_filename)

    # 重命名图片文件

    os.rename(image_path, new_image_path)

print("Dataset images labeled with indices.")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值