paddle03_1图片分类之数据制作

本文介绍了一种用于划分和预处理图片数据集的方法,包括将不同类别的图片按比例分配到训练集和测试集,同时确保图片格式正确并排除非彩色图片。通过Python脚本实现,该过程涉及读取指定目录下的图片,检查图片类型,转换图片为数组,并记录图片路径及标签。

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

1、数据类别数:将不同类别的图片放入不同的文件夹下:

2、生成标签列表

import warnings
warnings.filterwarnings('ignore')
import imghdr  # 判断图片格式用的
import random
# import seaborn as sns
from time import time
import paddle.fluid as fluid
import paddle
import numpy as np
from PIL import Image
import os
from multiprocessing import cpu_count
import matplotlib.pyplot as plt


# 图片目录
data_1 = 'F:/dataSet/IMG/1'
data_2 = 'F:/dataSet/IMG/2'
data_3 = 'F:/dataSet/IMG/3'
data_path = [data_1, data_2, data_3]

train_img_num = 0
test_img_num = 0
with open('train_data.list', 'w') as f_train:  # 需要存放的文件
    with open('test_data.list', 'w') as f_test:
        for label,path in enumerate(data_path):
            data_imgs = os.listdir(path)
            for i in range(len(data_imgs)):
                try:
                    img_path = os.path.join(path, data_imgs[i]) # 合成路径
                    img_type = imghdr.what(img_path)            # 获取图片类型
                    if (img_type == 'jpeg')|(img_type == 'jpg'):    # jpeg/jpg格式图片保存
                        img_arr = np.array(Image.open(img_path))  # 获取图片数据形式
                        sp = img_arr.shape
                        # print("通道数:",img_arr.shape[2])
                        if len(img_arr.shape) != 1:             # 非彩色图不要
                            if i % 10 == 0:
                                test_img_num += 1
                                f_test.write(img_path + "\t" + str(label) + '\n')
                            else:
                                train_img_num += 1
                                # print(img_path + "\t" + str(label+1) + '\n')
                                f_train.write(img_path + "\t" + str(label) + '\n')
                except:
                    pass
print('图像列表已生成。')
print(f'训练图片{train_img_num}张,测试图片{test_img_num}张。')

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值