33 lines
949 B
Python
33 lines
949 B
Python
from torch.utils.data import Dataset
|
||
import cv2
|
||
from PIL import Image
|
||
import os
|
||
|
||
|
||
class MyDataset(Dataset):
|
||
|
||
def __init__(self, root_dir, label_dir):
|
||
self.root_dir = root_dir
|
||
self.label_dir = label_dir
|
||
self.path = os.path.join(self.root_dir, self.label_dir)
|
||
self.img_path = os.listdir(self.path)
|
||
|
||
# __getitem__ 是一个魔法方法,当使用dataset[i]获取第i个样本时,就会调用该方法。
|
||
def __getitem__(self, idx):
|
||
img_name = self.img_path[idx]
|
||
img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)
|
||
img = Image.open(img_item_path)
|
||
label = self.label_dir
|
||
|
||
return img, label
|
||
|
||
def __len__(self):
|
||
return len(self.img_path)
|
||
|
||
|
||
root_dir = 'dataset/train'
|
||
ants_label_dir = 'ants'
|
||
bees_label_dir = 'bees'
|
||
ants_dataset = MyDataset(root_dir, ants_label_dir)
|
||
bees_dataset = MyDataset(root_dir, bees_label_dir)
|
||
print(ants_dataset[0]) |