- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to adjust saturation of an image in PyTorch?
The saturation of an image refers to the intensity of a color. The higher the saturation of a color, the more vivid it is. The lower the saturation of a color, the closer it is to gray.
To adjust the saturation of an image, we apply adjust_saturation(). It's one of the functional transforms provided by the torchvision.transforms module. adjust_saturation() transformation accepts both PIL and tensor images. A tensor image is a PyTorch tensor with shape [C, H, W], where C is the number of channels, H is the image height, and W is the image width.
This transform also accepts a batch of tensor images. If the image is neither a PIL image nor a tensor image, then we first convert it to a tensor image and then apply adjust_saturation(). The saturation value should be a non-negative number.
Syntax
torchvision.transforms.functional.adjust_saturation(img, saturation_factor)
Parameters
img - Image of which saturation is to be adjusted. It is a PIL image or torch tensor. It may be a single image or a batch of images.
hue_factor - A non-negative number. 0 will give a black-and-white image, while 1 will give the original image.
Output
It returns the saturation adjusted image.
Steps
To adjust the saturation of an image, one could follow the steps given below −
Import the required libraries. In all the following examples, the required Python libraries are torch, Pillow, and torchvision. Make sure you have already installed them.
import torch import torchvision import torchvision.transforms.functional as F from PIL import Image
Read the input image. The input image is a PIL image or a torch tensor
img = Image.open('panda.jpg')
Adjust the saturation of the image with the desired saturation factor.
img = F.adjust_saturation(img, 5)
Visualize the saturation adjusted image.
img.show()
Input Images
We will use this image as the input file in the following examples
Example 1
In this program, we adjust the saturation of the input image with saturation_factor=5.
import torch import torchvision import torchvision.transforms as T import torchvision.transforms.functional as F from torchvision.io import read_image # read input image img = read_image('panda.jpg') # adjust saturation img1 = F.adjust_saturation(img, 5) # convert img1 to PIL image img1 = T.ToPILImage()(img1) # display the PIL image img1.show()
Output
Example 2
In this program, we adjust the saturation of the input image with different saturation_factor.
import torch import torchvision import torchvision.transforms as T import torchvision.transforms.functional as F from torchvision.io import read_image from torchvision.utils import make_grid # read input image img = read_image('panda.jpg') # adjust saturation img1 = F.adjust_saturation(img, 0) img2 = F.adjust_saturation(img, 0.5) img3 = F.adjust_saturation(img, 1) img4 = F.adjust_saturation(img, 4) # make image grid grid_img = make_grid([img1, img2, img3, img4], nrow=2) # convert the tensor image to PIL image grid_pil = T.ToPILImage()(grid_img) # display the PIL image grid grid_pil.show()
Output
- Related Articles
- How to adjust the brightness of an image in PyTorch?
- How to adjust the contrast of an image in PyTorch?
- How to adjust the hue of an image in PyTorch?
- How to adjust the sharpness of an image in PyTorch?
- PyTorch – Randomly change the brightness, contrast, saturation and hue of an image
- PyTorch – How to convert an image to grayscale?
- How to crop an image at center in PyTorch?
- PyTorch – How to rotate an image by an angle?
- PyTorch – How to perform random affine transformation of an image?
- How to convert an image to a PyTorch Tensor?
- How to pad an image on all sides in PyTorch?
- How to draw bounding boxes on an image in PyTorch?
- PyTorch – How to resize an image to a given size?
- How to adjust the contrast of an image using contrast() function in Node Jimp?
- PyTorch – How to crop an image at a random location?
