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)
10-21
6954

07-14
2854

06-11
714
