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**。它有三个通道,红色、绿色和蓝色,但它是灰度图像。

更新于: 2022-01-06

7K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告