| |
| from data.base_dataset import BaseDataset, get_transform, get_params |
| from data.image_folder import make_dataset |
| from PIL import Image |
|
|
|
|
| class SingleFolderDataset(BaseDataset): |
| """ |
| A dataset class for loading images from a single folder. |
| Used for testing where only content images are needed. |
| """ |
|
|
| @staticmethod |
| def modify_commandline_options(parser, is_train): |
| |
| parser.add_argument('--image_dir', type=str, required=True, |
| help='path to the directory that contains images') |
| |
| |
| |
| parser.set_defaults(preprocess_mode='resize_and_crop', load_size=256, crop_size=256, no_flip=True) |
| return parser |
|
|
| def __init__(self, opt): |
| super().__init__() |
| self.opt = opt |
| self.image_paths = sorted(make_dataset(opt.image_dir, recursive=True)) |
| |
|
|
| def __getitem__(self, index): |
| path = self.image_paths[index] |
| img = Image.open(path).convert('RGB') |
|
|
| |
| |
| |
| params = get_params(self.opt, img.size) |
| if not self.opt.isTrain: |
| params['crop_pos'] = (0, 0) |
| params['flip'] = False |
|
|
| transform = get_transform(self.opt, params, normalize=True) |
| img_tensor = transform(img) |
| |
|
|
| |
| |
| return {'day': img_tensor, 'cpath': path} |
|
|
| def __len__(self): |
| return len(self.image_paths) |