PyTorch – 如何将图像转换为灰度图像?
要将图像转换为灰度图像,我们应用 **Grayscale()** 变换。它是 torchvision.transforms 模块提供的众多变换之一。此模块包含许多重要的变换,可用于对图像数据执行不同类型的操作。
**Grayscale()** 变换接受 PIL 和张量图像或一批张量图像。张量图像是一个形状为 **[3, H, W]** 的 PyTorch 张量,其中 H 是图像高度,W 是图像宽度。一批张量图像也是一个 torch 张量,形状为 **[B, 3, H, W]**。B 是批次中图像的数量。
语法
torchvision.transforms.Grayscale()(img)
它返回一个灰度图像。
步骤
我们可以使用以下步骤将图像转换为灰度图像:
导入所需的库。在以下所有示例中,所需的 Python 库为 **torch、Pillow** 和 **torchvision**。请确保您已安装它们。
import torch import torchvision import torchvision.transforms as transforms from PIL import Image
读取输入图像。输入图像为 PIL 图像或 torch 张量。
img = Image.open('laptop.jpg')
定义一个变换,将原始输入图像转换为灰度图像。
transform = transforms.Grayscale()
将上述定义的变换应用于输入图像,将其转换为灰度图像。
img = transform(img)
可视化灰度图像。
img.show()
输入图像
以下图像用作两个示例中的输入。
示例 1
以下 Python3 程序将输入 PIL 图像转换为灰度图像。
# import required libraries import torch import torchvision.transforms as transforms from PIL import Image # Read the image img = Image.open('laptop.jpg') # define a transform to convert the image to grayscale transform = transforms.Grayscale() # apply the above transform on the image img = transform(img) # dispaly the image img.show() # num of output channels = 1 print(img.mode)
输出
它将产生以下输出:
请注意,灰度图像的模式为 L。灰度图像只有一个通道。
示例 2
以下 Python3 程序演示了如何将输入图像转换为灰度图像。
# Python program to convert an image to grayscale # import required libraries import torch import torchvision.transforms as transforms from PIL import Image # Read the image img = Image.open('laptop.jpg') # define a transform to convert the image to grayscale transform = transforms.Grayscale(3) # apply the above transform on the image img = transform(img) # display the image img.show() # the num of output channels =3, R=G=B, but Gray image print(img.mode)
输出
它将产生以下输出:
请注意,输出灰度图像的模式为 **RGB**。它有三个通道,红色、绿色和蓝色,但它是灰度图像。
广告