← Back to all transforms
MotionBlur
Description
Apply motion blur to the input image using a random-sized kernel. This transform simulates the effect of camera or object motion during image capture, creating a directional blur. It uses a line-shaped kernel with random orientation to achieve this effect. Args: blur_limit (int | tuple[int, int]): Maximum kernel size for blurring the input image. Should be in range [3, inf). - If a single int is provided, the kernel size will be randomly chosen between 3 and that value. - If a tuple of two ints is provided, it defines the inclusive range of possible kernel sizes. Default: (3, 7) allow_shifted (bool): If set to True, allows the motion blur kernel to be randomly shifted from the center. If False, the kernel will always be centered. Default: True p (float): Probability of applying the transform. Default: 0.5 Targets: image Image types: uint8, float32 Number of channels: Any Note: - The blur kernel is always a straight line, simulating linear motion. - The angle of the motion blur is randomly chosen for each application. - Larger kernel sizes result in more pronounced motion blur effects. - When `allow_shifted` is True, the blur effect can appear more natural and varied, as it simulates motion that isn't perfectly centered in the frame. - This transform is particularly useful for: * Simulating camera shake or motion blur in action scenes * Data augmentation for object detection or tracking tasks * Creating more challenging inputs for image stabilization algorithms Example: >>> import numpy as np >>> import albumentations as A >>> image = np.random.randint(0, 256, (100, 100, 3), dtype=np.uint8) >>> transform = A.MotionBlur(blur_limit=7, allow_shifted=True, p=0.5) >>> result = transform(image=image) >>> motion_blurred_image = result["image"] References: - Motion blur: https://en.wikipedia.org/wiki/Motion_blur - OpenCV filter2D (used internally): https://docs.opencv.org/master/d4/d86/group__imgproc__filter.html#ga27c049795ce870216ddfb366086b5a04
Parameters
- blur_limit: int | tuple[int, int] (default: 7)
- allow_shifted: bool (default: true)
- p: float (default: 0.5)
Targets
- Image
Try it out
ⓘ
Original Image:
Result:
Transform result will appear here