【python图片填充】

图片填充

背景

例子:
原始图片:[190,289]
目标图片:[224,289]
需要从原始图像中裁剪出(224,224)大小的图片,原始图片大小不够,所以要填充图片至[224,289]

通用情况:
需求:从原始图片中填充像素使图片大小变为指定大小,且不改变原始图片
原始图片:[iw, ih]
目标图片:[dw, dh]
裁剪尺寸:[patchsize, patchsize]
若iw < patchsize:
则[dw=patchsize, dh=ih]
若ih < patchsize:
则[dw=iw, dh=patchsize]

代码

def scale(root, txtpath, patch_size):
'''
txtpath:filename, mos
'''
    fh = open(txtpath, 'r')
    pic_names = []
    for line in fh:
        line = line.split('\n')  # ['00_00_00.png,9.516666666666667', '']
        words = line[0].split(',')  # ['00_00_00.png', '9.516666666666667']
        picname = words[0]
        pic_names.append(picname)

    for name in pic_names:
        picpath = os.path.join(root, 'projection_img', 'projection_1', name)  #存放原始图片的路径
        img = Image.open(picpath)
        iw, ih = img.size  # 原始图像的尺寸
        if iw < 224 | ih < 224:
            scale = max(patch_size / iw, patch_size / ih)  # 转换的最大比例
            nw = int(iw * scale + 0.5)
            nh = ih
        else:
            nw = iw
            nh = ih
        new_image = Image.new('RGB', (nw, nh), (0, 255, 0))  # 生成绿色图像
        # # // 为整数除法,计算图像的位置
        new_image.paste(img, (0, 0))  # 将图像填充在背景图的(00)处,其余部分为绿色
        new_image.save(name)
        # print(new_image.size)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值