|
- import torch
- import random
- import numpy as np
-
- from PIL import Image, ImageOps, ImageFilter
-
- class Normalize(object):
- """Normalize a tensor image with mean and standard deviation.
- Args:
- mean (tuple): means for each channel.
- std (tuple): standard deviations for each channel.
- """
- def __init__(self, mean=(0., 0., 0.), std=(1., 1., 1.)):
- self.mean = mean
- self.std = std
-
- def __call__(self, sample):
- img = sample['image']
- # mask = sample['label']
- img = np.array(img).astype(np.float32)
- # mask = np.array(mask).astype(np.float32)
- img /= 255.0
- img -= self.mean
- img /= self.std
-
- # return {'image': img,
- # 'label': mask}
- return {'image': img}
-
-
- class ToTensor(object):
- """Convert ndarrays in sample to Tensors."""
-
- def __call__(self, sample):
- # swap color axis because
- # numpy image: H x W x C
- # torch image: C X H X W
- img = sample['image']
- # mask = sample['label']
- img = np.array(img).astype(np.float32).transpose((2, 0, 1))
- # mask = np.array(mask).astype(np.float32)
-
- img = torch.from_numpy(img).float()
- # mask = torch.from_numpy(mask).float()
-
- # return img, mask
- return img
-
-
-
- class FixedResize(object):
- def __init__(self, size):
- self.size = (size, size) # size: (h, w)
-
- def __call__(self, sample):
- img = sample['image']
- # mask = sample['label']
-
- # assert img.size == mask.size
-
- img = img.resize(self.size, Image.BILINEAR)
- # mask = mask.resize(self.size, Image.NEAREST)
-
- # return {'image': img,
- # 'label': mask}
- return {'image': img}
|