In [ ]:
%matplotlib inline

import sys
sys.path.append('../')

import numpy as np
import glob
from PIL import Image
import matplotlib.pyplot as plt

from src.augmentation import iaa
from src.utils import plot_list

In [ ]:
IMG_DIR = 'YOUR/DIR'
IMG_IDX = 18
img_filepath = sorted(glob.glob('{}/*'.format(IMG_DIR)))[IMG_IDX]
img = np.array(Image.open(img_filepath))
plt.imshow(img)

Affine augmentations


In [ ]:
affine_seq = iaa.Sequential([
#     General
    iaa.SomeOf((1, 2),
               [iaa.Fliplr(0.5),
                iaa.Affine(rotate=(-10, 10),
                           translate_percent={"x": (-0.25, 0.25)}, mode='symmetric'),
                ]),
#     Deformations
    iaa.Sometimes(0.3, iaa.PiecewiseAffine(scale=(0.04, 0.08))),
    iaa.Sometimes(0.3, iaa.PerspectiveTransform(scale=(0.05, 0.1))),
], random_order=True)

In [ ]:
AUG_NR = 6
aug_imgs = []
for _ in range(AUG_NR):
    aug_img = affine_seq.augment_image(img)
    aug_imgs.append(aug_img)
plot_list(images=aug_imgs)

Intensity Augmentations


In [ ]:
intensity_seq = iaa.Sequential([
    iaa.Invert(0.3),
    iaa.Sometimes(0.3, iaa.ContrastNormalization((0.5, 1.5))),
    iaa.OneOf([
        iaa.Noop(),
        iaa.Sequential([
            iaa.OneOf([
                iaa.Add((-10, 10)),
                iaa.AddElementwise((-10, 10)),
                iaa.Multiply((0.95, 1.05)),
                iaa.MultiplyElementwise((0.95, 1.05)),
            ]),
        ]),
        iaa.OneOf([
            iaa.GaussianBlur(sigma=(0.0, 1.0)),
            iaa.AverageBlur(k=(2, 5)),
            iaa.MedianBlur(k=(3, 5))
        ])
    ])
], random_order=False)

In [ ]:
AUG_NR = 6
aug_imgs = []
for _ in range(AUG_NR):
    aug_img = intensity_seq.augment_image(img)
    aug_imgs.append(aug_img)
plot_list(images=aug_imgs)

In [ ]: