简体   繁体   中英

How can I save images with different name on different directory using PIL .save?

I'm trynna get the train_img and ground truth img from directory './train_dataset/train_img_cropped' & './train_dataset/train_gt_cropped'. Next, I wanna save the both original image and flipped one with a '_0', '_1'tail on its name in directory './train_dataset/train_img_preprocessed' & './train_dataset/train_gt_preprocessed'. But there's an Error of changing names (file + "_0" or "_1") as an unknown file extension. Looks like somehow PIL recognizes _0, _1 as a extension. Is there anybody who can help me to save with changing the name?

import os
import os.path
import glob

from PIL import Image

def preprocess(img_path, save_path):
targetdir = img_path
files = os.listdir(targetdir)

format = [".png"]
for (path, dirs, files) in os.walk(targetdir):

    for file, i in files:
        if file.endswith(tuple(format)):
            image = Image.open(path + "/" + file)
            image.save(save_path + "/" + file)

            flippedImage = image.transpose(Image.FLIP_LEFT_RIGHT)
            flippedImage.save(save_path + "/" + file)

            print(file + " successfully flipped!")
        
        else:
            print(path)
            print("InValid", file)

if __name__ == "__main__":
train_img_cropped_path = './train_dataset/train_img_cropped'
train_img_preprocessed_path = './train_dataset/train_img_preprocessed'

train_gt_cropped_path = './train_dataset/train_gt_cropped'
train_gt_preprocessed_path = './train_dataset/train_gt_preprocessed'



preprocess(train_img_cropped_path, train_img_preprocessed_path)
preprocess(train_gt_cropped_path, train_gt_preprocessed_path)

不确定这是否回答了您的问题,但为什么不使用临时名称(例如随机字母数字字符串或 uuid)保存图像,然后使用os.rename更改临时文件的名称,并以您想要的名称结尾_0_1 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM