pytorch中利用pillow批量修改数据集图片分辨率,并对分辨率较小的图片进行填充处理

承接上篇关于对数据集的处理,往往我们在收集图片数据时,其分辨率大小是不同的,而对于神经网络来说,最好训练集的图片能够是一致的分辨率,因此利用此代码可以批量处理图片的分辨率,将其统一为同一的分辨率,并且在此代码中还加入了对分辨率较小的图片进行填充至统一分辨率的功能,便于处理各种大小不同的分辨率的图片。代码如下,欢迎指教~

"""
Author:Keycle
Date:2020/11/09
将图片裁切至同一分辨率,如果有较小分辨率的图片,则用灰色背景填充至需要的分辨率
"""

# -*- coding: utf-8 -*-

from glob import glob
from PIL import Image
import os

black_file = 'F:/Machine Learning/dataset/background/gray.jpg'  # 填充的纯灰色背景图片地址(可以自己用画图工具做)(注意需要与填充的分辨率保持一致)
img_path = glob("F:/Machine Learning/dataset/testA/*.jpg")      # 原始图片地址
path_save = "F:/Machine Learning/dataset/resultA/"              # 处理后保存的图片地址
a = range(0, len(img_path))
i = 0
pad_width=256  # 需要填充的分辨率宽度
pad_height=256 # 需要填充的分辨率高度
for file in img_path:
    name = os.path.join(path_save, "%d.jpg"%a[i])
    im = Image.open(file)
    im_black = Image.open(black_file)
    im.thumbnail((256, 256))
    ori_width, ori_height = im.size
    if ori_width != pad_width or ori_height != pad_height:
        box_ori_full = (0, 0, ori_width, ori_height)
        region_ori = im.crop(box_ori_full)
        im_black.paste(region_ori, ((pad_width - ori_width) // 2, (pad_height - ori_height) // 2))
        im_black.save(name,'JPEG')
    else:
        im.save(name,'JPEG')
    i+=1

代码运行效果如下:
原图,分辨率为227X287
在这里插入图片描述
经过填充处理后:
在这里插入图片描述
在这里插入图片描述
最终得到了256X256分辨率的图片

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值