Python 如何从不同的文件夹读取图像数据?

Python 如何从不同的文件夹读取图像数据?,python,computer-vision,mnist,chainer,Python,Computer Vision,Mnist,Chainer,我有4个文件夹:猫、狗、老虎和袋鼠,每个文件夹都有100张图片 当我使用chainer库导入mnist数据集时,我得到了图像的元组及其相应的标签。我希望阅读并使用相同格式的数据集 img_dict=dict() for root, dirs, files in os.walk(path): print(os.path.basename(root)) my_key = os.path.basename(root) dir_images = [] for file

我有4个文件夹:猫、狗、老虎和袋鼠,每个文件夹都有100张图片

当我使用chainer库导入mnist数据集时,我得到了图像的元组及其相应的标签。我希望阅读并使用相同格式的数据集

img_dict=dict()

for root, dirs, files in os.walk(path):
    print(os.path.basename(root))
    my_key = os.path.basename(root)

    dir_images = []
    for file_ in files:
        full_file_path = os.path.join(root, file_)
        img = cv2.imread(full_file_path)
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        dir_images.append(img)

    img_dict[my_key] = dir_images

链接器代码如下所示:

train, test = chainer.datasets.get_mnist()
train_data, train_targets = np.array(train).transpose()
test_data, test_targets = np.array(test).transpose()
train_data = np.array(list(train_data)).reshape(train_data.shape[0],1,28,28)
test_data = np.array(list(test_data)).reshape(test_data.shape[0],1,28,28)

我尝试了以下代码,但它没有带来相同格式的代码

img_dict=dict()

for root, dirs, files in os.walk(path):
    print(os.path.basename(root))
    my_key = os.path.basename(root)

    dir_images = []
    for file_ in files:
        full_file_path = os.path.join(root, file_)
        img = cv2.imread(full_file_path)
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        dir_images.append(img)

    img_dict[my_key] = dir_images

阅读这些图像并使其与上述chainer library中MNIST的格式相同的正确方法是什么

X=[]
Z=[]
IMG_SIZE=150
CAT_DIR='../CAT'
DOG_DIR='../DOG'
TIGER_DIR='../TIGER'
KANGAROO_DIR='../KANGAROO'

def assign_label(img,label):
    return label
def make_train_data(label,DIR):
    for img in tqdm(os.listdir(DIR)):
        label=assign_label(img,label)
        path = os.path.join(DIR,img)
        img = cv2.imread(path,cv2.IMREAD_COLOR)
        img = cv2.resize(img, (IMG_SIZE,IMG_SIZE))
    
        X.append(np.array(img))
        Z.append(str(label))

make_train_data('CAT',CAT_DIR)
make_train_data('DOG',DOG_DIR)
make_train_data('TIGER',TIGER_DIR)
make_train_data('KANGAROO',KANGAROO_DIR)

# USE A LABELENCODER IF YOU WANT HERE

holder = zip(X, Z)
print(tuple(holder))