对图片进行批处理剪切成需要的大小

版权声明:博客仅供参考,有什么意见,请在下方留言,转载时请附上链接,谢谢! https://blog.csdn.net/u010105243/article/details/78555761
import argparse
import os
from PIL import Image


def resize_image(image, size):
    """Resize an image to the given size."""
    return image.resize(size, Image.ANTIALIAS)

def resize_images(image_dir, output_dir, size):
    """Resize the images in 'image_dir' and save into 'output_dir'."""
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    images = os.listdir(image_dir)
    num_images = len(images)
    for i, image in enumerate(images):
        with open(os.path.join(image_dir, image), 'r+b') as f:
            with Image.open(f) as img:
                img = resize_image(img, size)
                img.save(os.path.join(output_dir, image), img.format)
        if i % 100 == 0:
            print ("[%d/%d] Resized the images and saved into '%s'."
                   %(i, num_images, output_dir))

def main(args):
    splits = ['train', 'val']
    for split in splits:
        image_dir = args.image_dir
        output_dir = args.output_dir
        image_size = [args.image_size, args.image_size]
        resize_images(image_dir, output_dir, image_size)


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--image_dir', type=str, default='./data/train/',
                        help='directory for train images')
    parser.add_argument('--output_dir', type=str, default='./data/train_resized/',
                        help='directory for saving resized images')
    parser.add_argument('--image_size', type=int, default=128,
                        help='size for image after processing')
    args = parser.parse_args()
    main(args)

猜你喜欢

转载自blog.csdn.net/u010105243/article/details/78555761