我有如下图片文件夹:
|------dir--|
| |---- input--|-- 1.jpg
| | |-- 2.jpg
.. ... ... ...
我想为
input folder
做随机旋转并将结果保存在output folder
我尝试了以下脚本:
import torch
import torchvision.transforms as T
from PIL import Image
import os
from os import listdir
folder_dir = "/dir/input/"
out_dir = "dir/output/"
imgs = os.listdir(folder_dir)
print(imgs)
for img in imgs:
img = Image.open(folder_dir+img)
print(type(img))
# define a transform
transform = T.RandomRotation(degrees=(0,360))
img = transform(img)
# display result
img.show()
img.save(f'{out_dir}{img}.jpg')
print('ok')
我在
output
目录中得到了对象名称为R<PIL.Image.Image image mode=L size=988x128 at 0x7FD72613DBE0>.jpg
的结果图像,但是我会用相同的输入图像名称来保存图像名称,例如,如果我在输入目录中读取过1.jpg
,我会直接保存它,因为它是名称 1.jpg
旋转完成后
| ---dir ---|
| |
| |---- output |
| | |-- 1.jpg
| | |-- 2.jpg
.. ... ... ...
你用图像对象覆盖你的
img
,这样它应该工作:
import torch
import torchvision.transforms as T
from PIL import Image
import os
from os import listdir
folder_dir = "/dir/input/"
out_dir = "dir/output/"
imgs = os.listdir(folder_dir)
print(imgs)
for img_name in imgs:
img = Image.open(folder_dir+img_name)
print(type(img))
# define a transform
transform = T.RandomRotation(degrees=(0,360))
img = transform(img)
# display result
img.show()
img.save(f'{out_dir}{img_name}.jpg')
print('ok')