PyTorch で画像を回転させたいことがあると思います。
その時に使えるのが、torchvision.transforms.functional.rotate
です。
ソースコード
では、画像を回転させてみます。
まずは必要なライブラリをimportと回転させたい画像を読み込みます。
import numpy as np
import torchvision.transforms.functional as TF
import matplotlib.pyplot as plt
from PIL import Image
img = Image.open("<path/to/img>")
img = img.resize((224, 224))
display(img)
torchvision.transforms.functional.rotate に画像と角度をしていするだけで、
回転させることができます。
数パターン試してみます。
img_rotated = TF.rotate(img, 45)
display(img_rotated)
img_rotated = TF.rotate(img, 180)
display(img_rotated)
見てわかる通り指定した確度に反時計回りに回転します。
ちなみに入力は torch.Tensor
でも可能です。
import torch
import torchvision
img_torch = torchvision.transforms.functional.to_tensor(img)
img_rot = TF.rotate(img_torch, 45)
img_rot = img_rot.squeeze(0)
plt.imshow(img_rot.permute(1, 2, 0))
バッチの時でも、バッチじゃないときでもできるようになっています。
つまり、データのshapeが(B, C, H, W) or (C, H, W)のどちらでも回転できます。
参考文献
https://pytorch.org/vision/stable/generated/torchvision.transforms.functional.rotate.html
コメント