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)

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