torchvision の変換を使用した画像強化
import torch
from torchvision import transforms
import numpy as np
import PIL.Image as Image
import matplotlib.pyplot as plt
def imshow(img_path, transform):
img = Image.open(img_path)
fig,ax = plt.subplots(1, 2, figsize=(15, 4))
ax[0].set_title(f'Original image {img.size}')
ax[0].imshow(img)
img = transform(img)
ax[1].set_title(f'Transformed image {img.size}')
ax[1].imshow(img)
path="D:/Desktop/lenna.png"
サイズ変更再スケール
#此函数用于将图像的高度和宽度调整为我们想要的特定大小。
tranform = transforms.Resize((224, 224))
imshow(path,tranform)
トリミング
#使用 CenterCrop 来返回一个中心裁剪的图像。
tranform = transforms.CenterCrop((224, 224))
imshow(path,tranform)
ランダムサイズ変更クロップ
#トリミングしてサイズ変更します。
transform = 変換.RandomResizeCrop((100, 300))
imshow(path,transform)
反転
#画像を水平または垂直に反転します
transform =transforms.RandomhorizontalFlip()
imshow(path,transform)
パディング
#画像のすべてのエッジを指定された量だけパッド変換
=transforms.Pad((50,50,50,50))
imshow(path,transform)
回転
#画像は回転角度をランダムに適用します
transform =transforms.RandomRotation(45)
imshow(path,transform)
ランダムアフィン
#中心を一定に保ちますtransform
=transforms.RandomAffine(1,translate=(0.5, 0.5),scale=(1,1),shear=(1,1),fillcolor=(256,256,256)) imshow(path, tranform
)
ガウスぼかし
#ガウスぼかしを使用して画像をぼかします。
変換 = 変換.GaussianBlur(7, 3)
imshow(パス, 変換)
グレースケール
変換 = 変換.Grayscale(num_output_channels=3)
imshow(パス, 変換)
輝度
#画像の明るさを変更する 結果の画像は、元の画像と比較して暗くなったり、明るくなったりします。
変換 = 変換.ColorJitter(明るさ=2)
imshow(パス, 変換)
対比
画像の最も暗い部分と最も明るい部分の差の度合いをコントラストと呼びます。画像のコントラストも強調として調整できます。
変換 = 変換.ColorJitter(コントラスト=2)
imshow(パス, 変換)
飽和
#Saturation
transformr=transforms.ColorJitter(saturation=20)
imshow(path, 変換)
色相
#Hue は、画像内の色の色合いとして定義されます。
transformr=transforms.ColorJitter(hue=2)
imshow(パス, 変換)