Python修改图像尺寸

Python代码修改图像尺寸

深度学习任务中,图像数据集的数量往往是非常大的,这时如果要统一修改所有图像的尺寸,需要用代码进行批处理,下面我们详细介绍图像尺寸修改流程。

主要使用 python 语言中的 pillow 库,安装代码如下:

pip install pillow

1、遍历根目录中的所有图像

from PIL import Image
import os

file_path = "The/path/of/your/datasets"
raw_files = os.walk(file_path)    # os.walk() 是遍历这个路径下的所有文件夹及文件
for root, dirs, files in raw_files:   # 把遍历的根目录、子目录以及文件名展现出来
	for file in files:                # 把单个文件名提取出来,方便一个个处理
		picture_path = os.path.join(root, dirs, file) # 合并路径得到图像的绝对路径
		pic_org = Image.open(picture_path)  # 读取路径图片信息

遍历根目录下的所有文件,利用for循环,把图片一个个读取进来,为图像尺寸的 resize 操作提供保障。(此方法适用于很多数据的处理,重要!

2、改变图像尺寸

pic_new = pic_org.resize((224, 224), Image.ANTIALIAS)
pic_new.save(pic_new_path)   # 将修改后的图像存储到新的路径中

上部分已经把原始图像读取进来了,这时候直接在上步基础上,进行图像尺寸变化。
其中(224,224)表示修改后的图像尺寸大小,也可以根据自己的需要设定。
Image.ANTIALIAS” 属于参数,表示抗锯齿,得到的是高质量图像。

3、完整代码:

from PIL import Image
import os

file_path = r"E:\relate_code\frame_file"    # 原始图像路径

raw_files = os.walk(file_path)              # 遍历所有图像
width, height = 224, 224                    # 修改后的图像尺寸大小

save_path = r"E:\relate_code\frame_resize"  # 修改后图像存储的路径
if not os.path.exists(save_path):           # 如果没有这个文件夹,就新建
    os.makedirs(save_path)

for root, dirs, files in raw_files:         
    for file in files:                      # 展现各文件
        picture_path = os.path.join(root, file)    # 得到图像的绝对路径
        pic_org = Image.open(picture_path)               # 打开图像

        pic_new = pic_org.resize((width, height), Image.ANTIALIAS)   # 图像尺寸修改
        _, sub_folder = os.path.split(root)              # 得到子文件夹名字
        pic_new_path = os.path.join(save_path, sub_folder)
        if not os.path.exists(pic_new_path):
            os.makedirs(pic_new_path)                    # 建立子文件夹
        pic_new_path = os.path.join(pic_new_path, file)  # 新图像存储绝对路径
        pic_new.save(pic_new_path)					     # 存储文件
        print("%s have been resized!" %pic_new_path)

日常学习记录,一起交流讨论吧!侵权联系~

你可能感兴趣的:(日常记录,python,计算机视觉,深度学习)