Defining a simple augmentation pipeline for image augmentation¶
This example shows how you can use Albumentations to define a simple augmentation pipeline.
Import the required libraries¶
import random import cv2 from matplotlib import pyplot as plt import albumentations as A
Define the visualization function¶
def visualize(image): plt.figure(figsize=(10, 10)) plt.axis('off') plt.imshow(image)
Read the image from the disk and convert it from the BGR color space to the RGB color space¶
For historical reasons, OpenCV reads an image in BGR format (so color channels of the image have the following order: Blue, Green, Red). Albumentations uses the most common and popular RGB image format. So when using OpenCV, we need to convert the image format to RGB explicitly.
image = cv2.imread('images/image_3.jpg') image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) visualize(image)
Define a single augmentation, pass the image to it and receive the augmented image¶
We fix the random seed for visualization purposes, so the augmentation will always produce the same result. In a real computer vision pipeline, you shouldn't fix the random seed before applying a transform to the image because, in that case, the pipeline will always output the same image. The purpose of image augmentation is to use different transformations each time.
transform = A.HorizontalFlip(p=0.5) random.seed(7) augmented_image = transform(image=image)['image'] visualize(augmented_image)
transform = A.ShiftScaleRotate(p=0.5) random.seed(7) augmented_image = transform(image=image)['image'] visualize(augmented_image)