← Back to all transforms

# RandomFog

## Description

Simulates fog for the image by adding random fog-like artifacts. This transform creates a fog effect by generating semi-transparent overlays that mimic the visual characteristics of fog. The fog intensity and distribution can be controlled to create various fog-like conditions. Args: fog_coef_range (tuple[float, float]): Range for fog intensity coefficient. Should be in [0, 1] range. alpha_coef (float): Transparency of the fog circles. Should be in [0, 1] range. Default: 0.08. p (float): Probability of applying the transform. Default: 0.5. Targets: image Image types: uint8, float32 Number of channels: Any Note: - The fog effect is created by overlaying semi-transparent circles on the image. - Higher fog coefficient values result in denser fog effects. - The fog is typically denser in the center of the image and gradually decreases towards the edges. - This transform is useful for: * Simulating various weather conditions in outdoor scenes * Data augmentation for improving model robustness to foggy conditions * Creating atmospheric effects in image editing Mathematical Formulation: For each fog particle: 1. A position (x, y) is randomly generated within the image. 2. A circle with random radius is drawn at this position. 3. The circle's alpha (transparency) is determined by the alpha_coef. 4. These circles are overlaid on the original image to create the fog effect. The final pixel value is calculated as: output = (1 - alpha) * original_pixel + alpha * fog_color where alpha is influenced by the fog_coef and alpha_coef parameters. Examples: >>> import numpy as np >>> import albumentations as A >>> image = np.random.randint(0, 256, [100, 100, 3], dtype=np.uint8) # Default usage >>> transform = A.RandomFog(p=1.0) >>> foggy_image = transform(image=image)["image"] # Custom fog intensity range >>> transform = A.RandomFog(fog_coef_lower=0.3, fog_coef_upper=0.8, p=1.0) >>> foggy_image = transform(image=image)["image"] # Adjust fog transparency >>> transform = A.RandomFog(fog_coef_lower=0.2, fog_coef_upper=0.5, alpha_coef=0.1, p=1.0) >>> foggy_image = transform(image=image)["image"] References: - Fog: https://en.wikipedia.org/wiki/Fog - Atmospheric perspective: https://en.wikipedia.org/wiki/Aerial_perspective

## Parameters

- alpha_coef: float (default: 0.08)
- fog_coef_range: tuple[float, float] (default: (0.3, 1))
- p: float (default: 0.5)

## Targets

- Image

## Try it out

ⓘ

### Original Image:

### Result:

Transform result will appear here