如何在 PyTorch 中調整影像的飽和度?
影像的飽和度指的是顏色的強度。顏色的飽和度越高,顏色就越鮮豔;顏色的飽和度越低,顏色就越接近灰色。
要調整影像的飽和度,我們使用 **adjust_saturation()** 函式。它是 **torchvision.transforms** 模組提供的功能轉換之一。**adjust_saturation()** 轉換同時接受 PIL 影像和張量影像。張量影像是形狀為 **[C, H, W]** 的 PyTorch 張量,其中 **C** 是通道數,**H** 是影像高度,**W** 是影像寬度。
此轉換也接受一批張量影像。如果影像既不是 PIL 影像也不是張量影像,則我們首先將其轉換為張量影像,然後應用 **adjust_saturation()**。飽和度值應為非負數。
語法
torchvision.transforms.functional.adjust_saturation(img, saturation_factor)
引數
**img** - 需要調整飽和度的影像。它是 PIL 影像或 PyTorch 張量。可以是單個影像或一批影像。
**hue_factor** - 一個非負數。0 將生成黑白影像,而 1 將生成原始影像。
輸出
它返回飽和度已調整的影像。
步驟
要調整影像的飽和度,可以按照以下步驟操作:
匯入所需的庫。在以下所有示例中,所需的 Python 庫為 **torch、Pillow** 和 **torchvision**。確保你已安裝它們。
import torch import torchvision import torchvision.transforms.functional as F from PIL import Image
讀取輸入影像。輸入影像是 PIL 影像或 PyTorch 張量。
img = Image.open('panda.jpg')
使用所需的飽和度因子調整影像的飽和度。
img = F.adjust_saturation(img, 5)
視覺化飽和度已調整的影像。
img.show()
輸入影像
我們將在以下示例中使用此影像作為輸入檔案。
示例 1
在這個程式中,我們使用 **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()
輸出
示例 2
在這個程式中,我們使用不同的 **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()
輸出
廣告