← Back to all transforms
ImageCompression
Description
Decrease image quality by applying JPEG or WebP compression. This transform simulates the effect of saving an image with lower quality settings, which can introduce compression artifacts. It's useful for data augmentation and for testing model robustness against varying image qualities. Args: quality_range (tuple[int, int]): Range for the compression quality. The values should be in [1, 100] range, where: - 1 is the lowest quality (maximum compression) - 100 is the highest quality (minimum compression) Default: (99, 100) compression_type (Literal["jpeg", "webp"]): Type of compression to apply. - "jpeg": JPEG compression - "webp": WebP compression Default: "jpeg" p (float): Probability of applying the transform. Default: 0.5. Targets: image Image types: uint8, float32 Number of channels: Any Note: - This transform expects images with 1, 3, or 4 channels. - For JPEG compression, alpha channels (4th channel) will be ignored. - WebP compression supports transparency (4 channels). - The actual file is not saved to disk; the compression is simulated in memory. - Lower quality values result in smaller file sizes but may introduce visible artifacts. - This transform can be useful for: * Data augmentation to improve model robustness * Testing how models perform on images of varying quality * Simulating images transmitted over low-bandwidth connections Example: >>> import numpy as np >>> import albumentations as A >>> image = np.random.randint(0, 256, (100, 100, 3), dtype=np.uint8) >>> transform = A.ImageCompression(quality_range=(50, 90), compression_type=0, p=1.0) >>> result = transform(image=image) >>> compressed_image = result["image"] References: - JPEG compression: https://en.wikipedia.org/wiki/JPEG - WebP compression: https://developers.google.com/speed/webp
Parameters
- p: float (default: 0.5)
- quality_range: tuple[int, int] (default: (99, 100))
- compression_type: Literal['jpeg', 'webp'] (default: 'jpeg')
Targets
- Image
Try it out
Original Image (width = 484, height = 733):
Transformed Image:
Transform not yet applied