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+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告