PyTorch – torchvision.transforms – RandomHorizontalFlip()
為了以給定的機率隨機水平翻轉影像,我們應用**RandomHorizontalFlip()**變換。它是**torchvision.transforms**模組提供的眾多變換之一。此模組包含許多重要的變換,可用於對影像資料執行不同型別的操作。
**RandomHorizontalFlip()**接受PIL影像和張量影像。張量影像是一個形狀為**[C, H, W]**的PyTorch張量,其中C是通道數,H是影像高度,W是影像寬度。
語法
torchvision.transforms.RandomHorizontalFlip(p)(img)
如果p = 1,則返回水平翻轉的影像。
如果p = 0,則返回原始影像。
如果p在(0,1)範圍內,則返回水平翻轉影像的機率為p。
它以給定的機率p隨機返回水平翻轉的影像。
步驟
我們可以使用以下步驟以給定的機率隨機水平翻轉影像:
匯入所需的庫。在以下所有示例中,所需的Python庫為**torch、Pillow**和**torchvision**。請確保您已安裝它們。
import torch import torchvision import torchvision.transforms as T from PIL import Image
讀取輸入影像。輸入影像是PIL影像或張量影像。
img = Image.open('building.jpg')定義一個變換,以給定的機率**p**隨機水平翻轉影像。這裡**p = 0.25**表示任何輸入影像被水平翻轉的機率為25%。
transform = T.RandomHorizontalFlip(p = 0.25)
將上述定義的變換應用於輸入影像以水平翻轉影像。
hflipped_img = transform(img)
顯示輸出影像。
hflipped_img.show()
輸入影像
此影像用作以下所有示例中的輸入。

示例1
在這個程式中,我們將p設定為1,所以它肯定會水平翻轉影像。
# import required libraries
import torch
import torchvision.transforms as T
from PIL import Image
# read the input image
img = Image.open('building.jpg')
# define a transform to horizontally flip an image
# randomly with a given probability
transform = T.RandomHorizontalFlip(p=1)
# apply the above defined transform on the input image
img = transform(img)
# display the image
img.show()輸出
它將產生以下輸出:
.jpg)
請注意,由於我們將機率p設定為1,因此我們的輸出影像被水平翻轉了。
示例2
在這個程式中,我們將p設定為0.25。
import torch
import torchvision.transforms as T
from PIL import Image
import matplotlib.pyplot as plt
img = Image.open('building.jpg')
transform = T.RandomHorizontalFlip(p=0.25)
imgs = [transform(img) for _ in range(4)]
fig = plt.figure(figsize=(7,3))
rows, cols = 2,2
for j in range(0, len(imgs)):
fig.add_subplot(rows, cols, j+1)
plt.imshow(imgs[j])
plt.xticks([])
plt.yticks([])
plt.show()輸出
它將產生以下輸出:
.jpg)
請注意,在4個輸出影像中,有一個被水平翻轉了。您可能會得到不同數量的翻轉影像。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP