如何用python保存同名图片?

问题描述 投票:0回答:1

我有如下图片文件夹:

|------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
..          ...          ...   ... 
python image image-processing transform
1个回答
0
投票

你用图像对象覆盖你的

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')
© www.soinside.com 2019 - 2024. All rights reserved.