Stay updated

News & Insights
utils

albumentations.augmentations.blur.functional


Functional implementations of various blur operations for image processing. This module provides a collection of low-level functions for applying different blur effects to images, including standard blur, glass blur, defocus, and zoom effects. These functions form the foundation for the corresponding transform classes.

box_blurfunction

box_blur(
    img: ImageType,
    ksize: int
)

Smooth image with uniform rectangular kernel (moving average). ksize sets size. Use for mild noise reduction or downscale prep. This function applies a blur to an image. Args: img (ImageType): Input image. ksize (int): Kernel size. Returns: ImageType: Blurred image.

Parameters

NameTypeDefaultDescription
imgImageType--
ksizeint--

glass_blurfunction

glass_blur(
    img: ImageType,
    sigma: float,
    max_delta: int,
    iterations: int,
    dxy: np.ndarray,
    mode: Literal['fast', 'exact']
)

Glass-like effect: Gaussian blur then random pixel swaps. Sigma, max_delta, iterations, dxy. Use for frosted-glass look. This function applies a glass blur to an image. Args: img (ImageType): Input image. sigma (float): Sigma. max_delta (int): Maximum delta. iterations (int): Number of iterations. dxy (np.ndarray): Dxy. mode (Literal['fast', 'exact']): Mode. Returns: ImageType: Glass blurred image.

Parameters

NameTypeDefaultDescription
imgImageType--
sigmafloat--
max_deltaint--
iterationsint--
dxynp.ndarray--
mode
One of:
  • 'fast'
  • 'exact'
--

create_defocus_kernelfunction

create_defocus_kernel(
    radius: int,
    alias_blur: float
)

Create defocus (aliased disk) convolution kernel. radius, alias_blur control disk shape and smoothing. Returns kernel for convolve.

Parameters

NameTypeDefaultDescription
radiusint--
alias_blurfloat--

defocusfunction

defocus(
    img: ImageType,
    radius: int,
    alias_blur: float
)

Blur with aliased disk kernel to simulate out-of-focus. radius, alias_blur set size and softness. Use for depth-of-field or bokeh-style effects.

Parameters

NameTypeDefaultDescription
imgImageType--
radiusint--
alias_blurfloat--

central_zoomfunction

central_zoom(
    img: ImageType,
    zoom_factor: int
)

Zoom from center by integer factor: crop center, upsample, trim to original size. Used in zoom-blur pipeline; zoom_factor must be positive. This function zooms an image. Args: img (ImageType): Input image. zoom_factor (int): Zoom factor. Returns: ImageType: Zoomed image.

Parameters

NameTypeDefaultDescription
imgImageType--
zoom_factorint--

zoom_blurfunction

zoom_blur(
    img: ImageType,
    zoom_factors: np.ndarray | Sequence[int]
)

Radial zoom blur: blend image with center-zoomed copies. zoom_factors; normalized result. Use for motion or out-of-focus style. Float32 I/O, clipped. This function zooms and blurs an image. Args: img (ImageType): Input image. zoom_factors (np.ndarray | Sequence[int]): Zoom factors. Returns: ImageType: Zoomed and blurred image.

Parameters

NameTypeDefaultDescription
imgImageType--
zoom_factors
One of:
  • np.ndarray
  • Sequence[int]
--

process_blur_limitfunction

process_blur_limit(
    value: int | tuple[int, int],
    info: ValidationInfo,
    min_value: int = 0
)

Process blur limit to valid kernel sizes (min, odd). Converts int or tuple to (min, max); enforces constraints. For blur InitSchema validators.

Parameters

NameTypeDefaultDescription
value
One of:
  • int
  • tuple[int, int]
--
infoValidationInfo--
min_valueint0-

create_motion_kernelfunction

create_motion_kernel(
    kernel_size: int,
    angle: float,
    direction: float,
    allow_shifted: bool,
    random_state: random.Random
)

Create motion blur kernel (2D float32). kernel_size (odd), angle, direction (-1 to 1), allow_shifted, random_state. Returns normalized kernel. Args: kernel_size (int): Size of the kernel (must be odd) angle (float): Angle in degrees (counter-clockwise) direction (float): Blur direction (-1.0 to 1.0) allow_shifted (bool): Allow kernel to be randomly shifted from center random_state (random.Random): Python's random.Random instance Returns: np.ndarray: Motion blur kernel

Parameters

NameTypeDefaultDescription
kernel_sizeint--
anglefloat--
directionfloat--
allow_shiftedbool--
random_staterandom.Random--

sample_odd_from_rangefunction

sample_odd_from_range(
    random_state: random.Random,
    low: int,
    high: int
)

Sample odd number from [low, high] (inclusive). Low/high normalized to odd (min 3). For blur transforms when sampling kernel size from a range. Args: random_state (random.Random): instance of random.Random low (int): lower bound (will be converted to nearest valid odd number) high (int): upper bound (will be converted to nearest valid odd number) Returns: int: Randomly sampled odd number from the range Note: - Input values will be converted to nearest valid odd numbers: * Values less than 3 will become 3 * Even values will be rounded up to next odd number - After normalization, high must be >= low

Parameters

NameTypeDefaultDescription
random_staterandom.Random--
lowint--
highint--

create_gaussian_kernelfunction

create_gaussian_kernel(
    sigma: float,
    ksize: int = 0
)

Create 2D Gaussian kernel (PIL-style). Sigma and ksize (0 = auto). Returns normalized float32 kernel for separable or 2D convolution. Args: sigma (float): Standard deviation for Gaussian kernel. ksize (int): Kernel size. If 0, size is computed as int(sigma * 3.5) * 2 + 1 to match PIL's implementation. Otherwise, must be positive and odd. Returns: np.ndarray: 2D normalized Gaussian kernel.

Parameters

NameTypeDefaultDescription
sigmafloat--
ksizeint0-

create_gaussian_kernel_1dfunction

create_gaussian_kernel_1d(
    sigma: float,
    ksize: int = 0
)

Create 1D Gaussian kernel (PIL-style). Sigma and ksize (0 = auto). For separable Gaussian blur; returns normalized float32 1D array. Args: sigma (float): Standard deviation for Gaussian kernel. ksize (int): Kernel size. If 0, size is computed as int(sigma * 3.5) * 2 + 1 to match PIL's implementation. Otherwise, must be positive and odd. Returns: np.ndarray: 1D normalized Gaussian kernel.

Parameters

NameTypeDefaultDescription
sigmafloat--
ksizeint0-

create_gaussian_kernel_input_arrayfunction

create_gaussian_kernel_input_array(
    size: int
)

1-D x-coordinates -size/2 to size/2 for Gaussian kernel. Piecewise for size < 100 (faster than np.linspace). Returns float array. Piecewise function is needed as equivalent python list comprehension is faster than np.linspace for values of size < 100 Args: size (int): kernel size Returns: np.ndarray: x-coordinate array which will be input for gaussian function that will be used for separable gaussian blur

Parameters

NameTypeDefaultDescription
sizeint--