-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathImageFolderwithPaths.py
37 lines (29 loc) · 1.06 KB
/
ImageFolderwithPaths.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
import os
import numpy as np
from torch.utils.data import Dataset
from glob import glob
from PIL import Image
class ImageFolderwithPaths(Dataset):
def __init__(self, path, transform=None):
self.classes = os.listdir(path)
self.classes_num = np.arange(len(self.classes))
self.paths = glob(path+'*')
self.labels = []
self.files_path = []
labels_counter = 0
self.files_path = glob(path+'/**/*')
self.tranform = transform
for path in self.paths:
img_paths = glob(path+'/*')
self.labels+= [labels_counter]*len(img_paths)
labels_counter+=1
def __getitem__(self, index):
image = Image.open(self.files_path[index]).convert('RGB')
if self.tranform != None:
image = self.tranform(image)
return image, self.labels[index], self.files_path[index]
def __len__(self):
if len(self.labels) == len(self.files_path):
return len(self.labels)
else:
print('Number of labels and images is not equal')