| import random | |
| from PIL import ImageFilter, ImageOps | |
| from torchvision import transforms | |
| class deitIII_GaussianBlur(object): | |
| """ | |
| Apply Gaussian Blur to the PIL image. | |
| """ | |
| def __init__(self, p=0.1, radius_min=0.1, radius_max=2.): | |
| self.prob = p | |
| self.radius_min = radius_min | |
| self.radius_max = radius_max | |
| def __call__(self, img): | |
| do_it = random.random() <= self.prob | |
| if not do_it: | |
| return img | |
| img = img.filter( | |
| ImageFilter.GaussianBlur( | |
| radius=random.uniform(self.radius_min, self.radius_max) | |
| ) | |
| ) | |
| return img | |
| class deitIII_Solarization(object): | |
| """ | |
| Apply Solarization to the PIL image. | |
| """ | |
| def __init__(self, p=0.2): | |
| self.p = p | |
| def __call__(self, img): | |
| if random.random() < self.p: | |
| return ImageOps.solarize(img) | |
| else: | |
| return img | |
| class deitIII_gray_scale(object): | |
| """ | |
| Apply Solarization to the PIL image. | |
| """ | |
| def __init__(self, p=0.2): | |
| self.p = p | |
| self.transf = transforms.Grayscale(3) | |
| def __call__(self, img): | |
| if random.random() < self.p: | |
| return self.transf(img) | |
| else: | |
| return img | |