python中批量将矩形图片转化为正方形图片,并且缩放

前言

为了在pytorch中进行深度学习的时候尽可能的采用正方形图片作为输入,需要将自己做的样本图片最好转化为正方形图片。具体的见代码,代码中有每一行的注释。

python代码

from PIL import Image
import os


def Square_Generated (read_file): # 创建一个函数用来产生所需要的正方形图片转化
    image = Image.open(read_file)   # 导入图片
    w, h = image.size  # 得到图片的大小
    # print(w,h)
    new_image = Image.new('RGB', size=(max(w, h), max(w, h)),color= 'white')  # 创建新的一个图片,大小取长款中最长的一边,color决定了图片中填充的颜色
    # print(background)
    length = int(abs(w - h))  # 一侧需要填充的长度
    box = (length, 0) if w < h else (0, length)  # 放在box中
    new_image.paste(image, box)                #产生新的图片
    new_image=new_image.resize((256,256))      #对图片进行缩放处理,这一步可以省略,GPU内存不足了,只能缩小跑CNN,试试效果
    return new_image


# source_path = './pics_GeneratedSqare_Test/'
# save_path = './square_pictureGenerated/'
source_path = './jitter_pictureGenerated/'     # 矩形图片存放的路径
save_path = './Train_jitter_Square/'           # 新产生的正方形图片存放的路径
if not os.path.exists(save_path):
    os.mkdir(save_path)

file_names = os.listdir(source_path)          # 获取矩形图片的名字
for i in range(len(file_names)):              # 循环批量处理
    img = Square_Generated(source_path + file_names[i]) # 通过函数批量获取新的正方形图片
    img.save(save_path+file_names[i],'PNG')             # 保存图片
    print('number',i)
    print(img)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章