使用PIL快速批量转换图片通道与大小

在深度学习中经常需要自己制作数据集,很多情况下由于图片的通道或者大小不统一会严重影响模型训练报错,直接对图片进行缩放会导致图片上的目标物体发生形变,可以通过生成固定规格的0值图像,与原始图形粘贴就可以按照我们想要的大小进行缩放了

from PIL import Image
import os
import numpy as np

path = r''                                                                              #图片所在的文件夹
i = 0
for file in os.listdir(path):
    with Image.open(os.path.join(path, file)) as im1:
        im1 = im1.convert("RGB")                                                        #转为RGB格式
        a = np.zeros([max(im1.size[0],im1.size[1]),max(im1.size[0],im1.size[1]),3])      #以最大边长生成0矩阵
        img_zero = Image.fromarray(np.uint8(a))                                          #0矩阵转为PIL
        img_zero.paste(im1, (0, 0, im1.size[0], im1.size[1]))                       #将原来的图片贴到0矩阵生成的图片上
        img = img_zero.resize((200, 200), Image.ANTIALIAS)                          #Image.ANTIALIAS放缩图片质量较高
        # img.show()                                                                是否查看转换后的图片
        img.save("./{}.jpg".format(i))                                              #选择保存的路径
        i+=1

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值