- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
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 read a JPEG or PNG image in PyTorch?
Reading the images is a very important part in image processing or computer vision related tasks. The torchvision.io package provides functions to perform different IO operations. To read an image, torchvision.io package provides the image_read() function. This function reads JPEG and PNG images. It returns a 3D RGB or Grayscale Tensor.
The three dimensions of the tensor correspond to [C,H,W]. C is the number of channels, W and H are the width and height of the image, respectively.
For RGB, the number of channels is 3. So, the output of the read image is a tensor of [3,H,W]. The values of the output tensor are in the range [0,255].
Syntax
torchvision.io.read_image(path)
Parameters
path - The input JPEG or PNG image path.
Output
It returns a torch tensor of size [image_channels, image_height, image_width]).
Steps
You can use the following steps to read and visualize a JPEG or PNG image in PyTorch.
Import the required libraries. In all the following examples, the required Python libraries are torch and torchvision. Make sure you have already installed them.
import torch import torchvision from torchvision.io import read_image import torchvision.transforms as T
Read a JPEG or PNG image using image_read() function. Specify the full image path with image types (.jpg or .png). The output of this function is a torch tensor of size [image_channels, image_height, image_width].
img = read_image('butterfly.jpg')
Optionally, compute the different image properties, i.e., image type, image size, etc.
To display the image, first we convert the image tensor to a PIL image and then display the image.
img = T.ToPILImage()(img) img.show()
Input Images
We will use these images as the input files in the following examples.
Example 1
Here's the full Python code to read a JPEG image using PyTorch.
# Import the required libraries import torch import torchvision from torchvision.io import read_image import torchvision.transforms as T # read a JPEG image img = read_image('butterfly.jpg') # display the image properties print("Image data:
", img) # check if input image is a PyTorch tensor print("Is image a PyTorch Tensor:", torch.is_tensor(img)) print("Type of Image:", type(img)) # size of the image print(img.size()) # convert the torch tensor to PIL image img = T.ToPILImage()(img) # display the image img.show()
Output
Image data: tensor([[[146, 169, 191, ..., 71, 61, 53], [140, 169, 192, ..., 75, 63, 53], [126, 161, 186, ..., 85, 68, 58], ..., [ 33, 31, 30, ..., 218, 221, 223], [ 30, 30, 31, ..., 216, 219, 224], [ 41, 45, 52, ..., 218, 219, 220]], [[130, 151, 170, ..., 47, 41, 35], [124, 151, 171, ..., 52, 42, 36], [110, 145, 168, ..., 61, 48, 39], ..., [ 29, 26, 25, ..., 197, 198, 200], [ 25, 25, 26, ..., 195, 198, 200], [ 20, 25, 33, ..., 200, 201, 202]], [[ 79, 101, 123, ..., 21, 17, 13], [ 73, 101, 126, ..., 21, 13, 10], [ 61, 96, 122, ..., 23, 11, 6], ..., [ 20, 20, 19, ..., 166, 167, 169], [ 19, 19, 20, ..., 164, 167, 172], [ 25, 27, 29, ..., 164, 165, 166]]], dtype=torch.uint8) Is image a PyTorch Tensor: True Type of Image: torch.Size([3, 465, 700])
Notice that the output of image_read() is torch Tensor and values are in range [0,255], and the data type of Tensor is torch.uint8.
Example 2
In this Python code, we will see how to read a png image using PyTorch.
import torch import torchvision # read a png image img = torchvision.io.read_image('elephant.png') # display the properties of image print("Image data:
", img) print(img.size()) print(type(img)) # display the png image # convert the image tensor to PIL image img = torchvision.transforms.ToPILImage()(img) # display the PIL image img.show()
Output
Image data: tensor([[[ 14, 13, 11, ..., 22, 21, 13], [ 13, 12, 9, ..., 24, 27, 21], [ 12, 10, 7, ..., 26, 33, 32], ..., [ 54, 15, 25, ..., 39, 76, 111], [ 79, 29, 32, ..., 38, 61, 84], [112, 60, 60, ..., 23, 47, 72]], [[ 14, 13, 11, ..., 11, 11, 5], [ 13, 12, 9, ..., 14, 17, 13], [ 12, 10, 7, ..., 15, 23, 23], ..., [ 38, 0, 9, ..., 25, 62, 97], [ 58, 8, 9, ..., 28, 50, 70], [ 91, 39, 37, ..., 13, 36, 58]], [[ 12, 11, 9, ..., 15, 12, 2], 11, 10, 7, ..., 15, 16, 10], [ 10, 8, 5, ..., 13, 21, 18], ..., [ 38, 0, 9, ..., 24, 61, 96], [ 65, 15, 15, ..., 27, 48, 67], [ 98, 46, 43, ..., 12, 34, 55]]], dtype=torch.uint8) Is image a PyTorch Tensor: True torch.Size([3, 466, 700]) <class 'torch.Tensor'>
Notice that the output of image_read() is a torch Tensor and the values are in the range [0,255], and the data type of Tensor is torch.uint8.
- Related Articles
- How to optimize and compress jpeg or png images in linux
- Difference between JPEG and PNG
- How to create a new image from a PNG file or URL using the imagecreatefrompng() function in PHP?
- How to use a custom png image marker in a plot (Matplotlib)?
- How to draw a png image on a Python tkinter canvas?
- How do I insert a JPEG image into a Python Tkinter window?
- How to convert an image to a PyTorch Tensor?
- How to create a new image from a JPEG file using the imagecreatefromjpeg() function in PHP?
- PyTorch – How to resize an image to a given size?
- PyTorch – How to convert an image to grayscale?
- How to crop an image at center in PyTorch?
- How to adjust saturation of an image in PyTorch?
- PyTorch – How to crop an image at a random location?
- How to find mean across the image channels in PyTorch?
- How to pad an image on all sides in PyTorch?
