← Back to all transforms
ToGray
Description
Convert an image to grayscale and optionally replicate the grayscale channel. This transform first converts a color image to a single-channel grayscale image using various methods, then replicates the grayscale channel if num_output_channels is greater than 1. Args: num_output_channels (int): The number of channels in the output image. If greater than 1, the grayscale channel will be replicated. Default: 3. method (Literal["weighted_average", "from_lab", "desaturation", "average", "max", "pca"]): The method used for grayscale conversion: - "weighted_average": Uses a weighted sum of RGB channels (0.299R + 0.587G + 0.114B). Works only with 3-channel images. Provides realistic results based on human perception. - "from_lab": Extracts the L channel from the LAB color space. Works only with 3-channel images. Gives perceptually uniform results. - "desaturation": Averages the maximum and minimum values across channels. Works with any number of channels. Fast but may not preserve perceived brightness well. - "average": Simple average of all channels. Works with any number of channels. Fast but may not give realistic results. - "max": Takes the maximum value across all channels. Works with any number of channels. Tends to produce brighter results. - "pca": Applies Principal Component Analysis to reduce channels. Works with any number of channels. Can preserve more information but is computationally intensive. p (float): Probability of applying the transform. Default: 0.5. Raises: TypeError: If the input image doesn't have 3 channels for methods that require it. Note: - The transform first converts the input image to single-channel grayscale, then replicates this channel if num_output_channels > 1. - "weighted_average" and "from_lab" are typically used in image processing and computer vision applications where accurate representation of human perception is important. - "desaturation" and "average" are often used in simple image manipulation tools or when computational speed is a priority. - "max" method can be useful in scenarios where preserving bright features is important, such as in some medical imaging applications. - "pca" might be used in advanced image analysis tasks or when dealing with hyperspectral images. Image types: uint8, float32 Returns: np.ndarray: Grayscale image with the specified number of channels.
Parameters
- p: float (default: 0.5)
- num_output_channels: int (default: 3)
- method: Literal['weighted_average', 'from_lab', 'desaturation', 'average', 'max', 'pca'] (default: 'weighted_average')
Targets
- Image
Try it out
Original Image (width = 484, height = 733):
Transformed Image:
Transform not yet applied