← Back to all transforms
ToSepia
Description
Apply a sepia filter to the input image. This transform converts a color image to a sepia tone, giving it a warm, brownish tint that is reminiscent of old photographs. The sepia effect is achieved by applying a specific color transformation matrix to the RGB channels of the input image. Args: p (float): Probability of applying the transform. Default: 0.5. Targets: image Image types: uint8, float32 Number of channels: 3 Note: - This transform only works with RGB images (3 channels). - The sepia effect is created using a fixed color transformation matrix: [[0.393, 0.769, 0.189], [0.349, 0.686, 0.168], [0.272, 0.534, 0.131]] - The output image will have the same data type as the input image. - For float32 images, ensure the input values are in the range [0, 1]. Raises: TypeError: If the input image is not a 3-channel RGB image. Examples: >>> import numpy as np >>> import albumentations as A >>> # Apply sepia effect to a uint8 image >>> image = np.random.randint(0, 256, (100, 100, 3), dtype=np.uint8) >>> transform = A.ToSepia(p=1.0) >>> sepia_image = transform(image=image)['image'] >>> assert sepia_image.shape == image.shape >>> assert sepia_image.dtype == np.uint8 >>> # Apply sepia effect to a float32 image >>> image = np.random.rand(100, 100, 3).astype(np.float32) >>> transform = A.ToSepia(p=1.0) >>> sepia_image = transform(image=image)['image'] >>> assert sepia_image.shape == image.shape >>> assert sepia_image.dtype == np.float32 >>> assert 0 <= sepia_image.min() <= sepia_image.max() <= 1.0 Mathematical Formulation: Given an input pixel [R, G, B], the sepia tone is calculated as: R_sepia = 0.393*R + 0.769*G + 0.189*B G_sepia = 0.349*R + 0.686*G + 0.168*B B_sepia = 0.272*R + 0.534*G + 0.131*B The output values are then clipped to the valid range for the image's data type. See Also: ToGray: For converting images to grayscale instead of sepia.
Parameters
- p: float (default: 0.5)
Targets
- Image
Try it out
ⓘ
Original Image:
Result:
Transform result will appear here