-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathload_data.py
43 lines (34 loc) · 1.51 KB
/
load_data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import os
import shutil
import numpy as np
import PIL
from PIL import Image
import os, sys
from scipy.io import loadmat
def load_data(data_path, classes, dataset='train', image_size=64):
num_images = 0
for i in range(len(classes)):
dirs = sorted(os.listdir(data_path + dataset + '/' + classes[i]))
num_images += len(dirs)
x = np.zeros((num_images, image_size, image_size, 3))
y = np.zeros((num_images, 1))
current_index = 0
# Parcours des différents répertoires pour collecter les images
for idx_class in range(len(classes)):
dirs = sorted(os.listdir(data_path + dataset + '/' + classes[idx_class]))
num_images += len(dirs)
# Chargement des images,
for idx_img in range(len(dirs)):
item = dirs[idx_img]
if os.path.isfile(data_path + dataset + '/' + classes[idx_class] + '/' + item):
# Ouverture de l'image
img = Image.open(data_path + dataset + '/' + classes[idx_class] + '/' + item)
# Conversion de l'image en RGB
img = img.convert('RGB')
# Redimensionnement de l'image et écriture dans la variable de retour x
img = img.resize((image_size,image_size))
x[current_index] = np.asarray(img)
# Écriture du label associé dans la variable de retour y
y[current_index] = idx_class
current_index += 1
return x, y