需求:我需要将文件夹中的图片,将其大小变成256*256。
为什么:因为对于一些AI项目的训练,其输入图像,可能长宽是一致的,如果不一致,就会导致报错。
代码如下:
from PIL import Image
import os
def resize_images_in_folder(input_folder, output_folder, size=(256, 256)):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# Iterate over files in the input folder
for filename in os.listdir(input_folder):
img_path = os.path.join(input_folder, filename)
# Check if the file is an image
if os.path.isfile(img_path) and img_path.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif', '.tiff')):
# Open the image
with Image.open(img_path) as img:
# Resize the image
resized_img = img.resize(size, Image.LANCZOS)
# Define the output path
output_path = os.path.join(output_folder, filename)
# Save the resized image
resized_img.save(output_path)
# Example usage
input_folder = 'data/test/dog'
output_folder = 'data/256/dog'
resize_images_in_folder(input_folder, output_folder)
这个代码,就会去读取指定文件夹中的图片,将图片尺寸变成256*256。如果生成文件夹不存在,会自动进行创建。