import os import cv2 from warp import Curve, Distort, Stretch from geometry import Rotate, Perspective, Shrink, TranslateX, TranslateY from pattern import VGrid, HGrid, Grid, RectGrid, EllipseGrid from noise import GaussianNoise, ShotNoise, ImpulseNoise, SpeckleNoise from blur import GaussianBlur, DefocusBlur, MotionBlur, GlassBlur, ZoomBlur from camera import Contrast, Brightness, JpegCompression, Pixelate from weather import Fog, Snow, Frost, Rain, Shadow from process import Posterize, Solarize, Invert, Equalize, AutoContrast, Sharpness, Color from PIL import Image import PIL.ImageOps import numpy as np import argparse if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--image', default="images/delivery.png", help='Load image file') parser.add_argument('--results', default="results", help='Load image file') parser.add_argument('--gray', action='store_true', help='Convert to grayscale 1st') opt = parser.parse_args() os.makedirs(opt.results, exist_ok=True) img = Image.open(opt.image) img = img.resize( (100,32) ) ops = [Curve(), Rotate(), Perspective(), Distort(), Stretch(), Shrink(), TranslateX(), TranslateY(), VGrid(), HGrid(), Grid(), RectGrid(), EllipseGrid()] ops.extend([GaussianNoise(), ShotNoise(), ImpulseNoise(), SpeckleNoise()]) ops.extend([GaussianBlur(), DefocusBlur(), MotionBlur(), GlassBlur(), ZoomBlur()]) ops.extend([Contrast(), Brightness(), JpegCompression(), Pixelate()]) ops.extend([Fog(), Snow(), Frost(), Rain(), Shadow()]) ops.extend([Posterize(), Solarize(), Invert(), Equalize(), AutoContrast(), Sharpness(), Color()]) for op in ops: for mag in range(3): filename = type(op).__name__ + "-" + str(mag) + ".png" out_img = op(img, mag=mag) if opt.gray: out_img = PIL.ImageOps.grayscale(out_img) out_img.save(os.path.join(opt.results, filename))