如何用实例分割产生的mask图实现人像抠图和背景替换

您所在的位置:网站首页 快影怎么抠图片人像背景 如何用实例分割产生的mask图实现人像抠图和背景替换

如何用实例分割产生的mask图实现人像抠图和背景替换

2024-07-14 09:00| 来源: 网络整理| 查看: 265

最近在做一个人像分割的项目,来实现人像抠图和背景替换等功能 实例分割阶段,可以使用u2net来输出mask图,代码地址。 下边为原图以及产生的mask图

在这里插入图片描述 在这里插入图片描述

然后我们找一张想要替换的背景图 在这里插入图片描述

import cv2 person = cv2.imread("原图") back = cv2.imread("背景图") #这里将mask图转化为灰度图 mask = cv2.imread("mask图",cv2.IMREAD_GRAYSCALE) #将背景图resize到和原图一样的尺寸 back = cv2.resize(back,(person.shape[1],person.shape[0])) #这一步是将背景图中的人像部分抠出来,也就是人像部分的像素值为0 scenic_mask =~mask scenic_mask = scenic_mask / 255.0 back[:,:,0] = back[:,:,0] * scenic_mask back[:,:,1] = back[:,:,1] * scenic_mask back[:,:,2] = back[:,:,2] * scenic_mask #这部分是将我们的人像抠出来,也就是背景部分的像素值为0 mask = mask / 255.0 person[:,:,0] = person[:,:,0] * mask person[:,:,1] = person[:,:,1] * mask person[:,:,2] = person[:,:,2] * mask #这里做个相加就可以实现合并 result = cv2.add(back,person) cv2.imwrite("3.jpg",result)

下边为效果图 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3