Python offers a huge variety of frameworks to manipulate and transform images. Besides the generic ones such as OpenCV (https://opencv.org) and Python Imaging Library (PIL—http://effbot.org/zone/pil-index.htm), some packages specialize in providing data augmentation methods for machine learning systems. Among those, imgaug by Alexander Jung (https://github.com/aleju/imgaug) and Augmentor by Marcus D. Bloice (https://github.com/mdbloice/Augmentor) are probably the most widely used, both offering a wide range of operations and a neat interface. Even Keras provides functions to preprocess and augment image datasets. ImageDataGenerator (https://keras.io/preprocessing/image) can be used to instantiate an image batch generator covering data augmentation (such as image rotation, zoom, or channel shifting).
However, TensorFlow has its own module for image processing that can seamlessly integrate tf.data pipelines—tf.image (refer to the documentation at https...