PyTorch – 隨機更改影像的亮度、對比度、飽和度和色相
要隨機更改影像的亮度、對比度、飽和度和色相,我們應用ColorJitter()。它是torchvision.transforms模組提供的眾多變換之一。此模組包含許多可用於操作影像資料的重要的變換。
ColorJitter()變換接受 PIL 和張量影像。張量影像是一個形狀為[C, H, W]的 PyTorch 張量,其中 C 是通道數,H是影像高度,W是影像寬度。
此變換還接受一批張量影像。一批張量影像是一個[B, C, H, W]的張量。B是批次中的影像數量。如果影像既不是 PIL 影像也不是張量影像,則我們首先將其轉換為張量影像,然後應用ColorJitter()。
語法
torchvision.transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0)
它返回一個影像,其亮度、對比度、飽和度和色相是從給定的相應範圍內隨機選擇的。
步驟
我們可以使用以下步驟隨機更改影像的亮度、對比度、飽和度和色相
匯入所需的庫。在以下所有 Python 示例中,所需的 Python 庫是torch、Pillow和torchvision。確保您已安裝它們。
import torch import torchvision import torchvision.transforms as transforms from PIL import Image
讀取輸入影像。輸入影像是 PIL 影像或 Torch 張量
img = Image.open('nike.jpg')定義一個變換來更改亮度、對比度、飽和度或色相。給出這些引數的所需範圍值。
transform = transforms.ColorJitter(brightness=(0.5,1.5),contrast=(1),saturation=(0.5,1.5),hue=(-0.1,0.1))
將上述定義的變換應用於輸入影像以隨機更改亮度、對比度、飽和度或色相。
img = transform(img)
顯示最終輸出影像。
img.show()
注意 − 在以下示例中,您可能會得到具有不同亮度、對比度、飽和度或色相的輸出影像,因為ColorJitter()變換會從給定範圍內隨機選擇這些值。例如,對於 brightness = (0.5, 1.5),亮度是 (0.5, 1.5) 範圍內的任何值。
輸入影像
我們將在兩個示例中都使用以下影像作為輸入。

示例 1
以下是隨機更改原始輸入影像的亮度、對比度、飽和度和色相的 Python3 程式。在這個例子中,我們以範圍 (最小值,最大值) 的形式提供引數的值。
# import the required libraries
import torch
import torchvision.transforms as transforms
from PIL import Image
# Read the image
img = Image.open('nike.jpg')
# define a transform
transform = transforms.ColorJitter(brightness=(0.5,1.5), contrast=(1), saturation=(0.5,1.5), hue=(-0.1,0.1))
# apply the above defined transform to randomly change
# brightness, contrast, saturation and hue.
img = transform(img)
# visualize the image
img.show()輸出
它將產生以下輸出:
.jpg)
請注意,您可能會得到具有不同亮度、對比度、飽和度和色相的輸出影像。
示例 2
在這個例子中,我們以浮點值的的形式提供引數的值。
# import required libraries
import torch
import torchvision.transforms as transforms
from PIL import Image
# Read the image
img = Image.open('nike.jpg')
# define a transform
transform = transforms.ColorJitter(brightness=1.0, contrast=0.5, saturation=1, hue=0.1)
# apply above transform on input image
img = transform(img)
# visualize the image
img.show()輸出
它將產生以下輸出:
.jpg)
請注意,您可能會得到具有不同亮度、對比度、飽和度和色相的輸出影像。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP