| 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 |
|
|