通过python的PIL库把图片或者视频换为透明背景

from PIL import Image
import os

if __name__ == "__main__":
    base_dir = '/DigitalHumanWeb/test/video_new'
    base2_dir = '/DigitalHumanWeb/app/resource_tmp'
    for person in os.listdir(base_dir):
        for person0 in os.listdir(base2_dir):
            if(person==person0):
                # 加载原始图像和掩码图像
                original_image_path=os.path.join(base_dir,person,'poster.png')
                original_image = Image.open(original_image_path).convert("RGBA")
                mask_image_path = os.path.join(base2_dir,person0,'idle1','mask','000.png')
                mask_image = Image.open(mask_image_path).convert("L")  # 加载掩码,转换为灰度图


                mask_image_c = mask_image.crop((0, 0, 1000, 768))
                original_image_c = original_image.crop((0, 0, 1000, 768))

                # 获取掩码中人物所在的边界框
                bbox = mask_image_c.getbbox()  # 返回非零像素区域的边界 (left, upper, right, lower)
                
                print(bbox)
                # 应用掩码到原始图像
                combined_image = Image.composite(original_image_c, Image.new("RGBA", original_image_c.size), mask_image_c)
                cropped_image = combined_image.crop((bbox[0], bbox[1], bbox[2], bbox[3]))
                print(bbox[0], bbox[1], bbox[2]-bbox[0], bbox[3]-bbox[1])
                

                # 保存为PNG图片
                save_dir=os.path.join('/DigitalHumanWeb/test/picture',f'{person}.png')
                #combined_image.save(save_dir)
                cropped_image.save(save_dir)



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值