Weather augmentations in Albumentations 🔗
This notebook demonstrates weather augmentations that are supported by Albumentations.
Import the required libraries 🔗
import albumentations as A
import cv2
from matplotlib import pyplot as plt
/opt/homebrew/Caskroom/miniconda/base/envs/albumentations_examples/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html from .autonotebook import tqdm as notebook_tqdm
Define a function to visualize an image 🔗
def visualize(image):
plt.figure(figsize=(20, 10))
plt.axis("off")
plt.imshow(image)
Load the image from the disk 🔗
image = cv2.imread("images/weather_example.jpg", cv2.IMREAD_COLOR_RGB)
Visualize the original image 🔗
visualize(image)
RandomRain 🔗
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.Compose(
[A.RandomRain(brightness_coefficient=0.8, drop_width=1, blur_value=5, p=1, rain_type="heavy")],
strict=True,
seed=137,
)
transformed = transform(image=image)
visualize(transformed["image"])
RandomSnow 🔗
transform = A.Compose(
[A.RandomSnow(brightness_coeff=2.5, snow_point_range=(0.3, 0.5), p=1)],
strict=True,
seed=137,
)
transformed = transform(image=image)
visualize(transformed["image"])
RandomSunFlare 🔗
transform = A.Compose(
[A.RandomSunFlare(flare_roi=(0, 0, 1, 0.5), p=1)],
strict=True,
seed=137,
)
transformed = transform(image=image)
visualize(transformed["image"])
RandomShadow 🔗
transform = A.Compose(
[A.RandomShadow(num_shadows_limit=(4, 4), shadow_dimension=5, shadow_roi=(0, 0.5, 1, 1), p=1)],
strict=True,
seed=137,
)
transformed = transform(image=image)
visualize(transformed["image"])
RandomFog 🔗
transform = A.Compose(
[A.RandomFog(fog_coef_range=(1, 1), alpha_coef=0.4, p=1)],
strict=True,
seed=137,
)
transformed = transform(image=image)
visualize(transformed["image"])