在进行深度学习matting后,得到图片透明度alpha,这里介绍如何通过获取的alpha将图片扣出来并设置成透明背景
方法一:
# 此时图片是黑底白色图片
cv2.imwrite("alpha.png", alpha)
# 获取0-1的透明值
alpha = alpha / 255
# 获取抠图,通过获取的alpha将图扣出来,此时背景为黑色
alpha_img = alpha[:, :, np.newaxis] * img_ori
cv2.imwrite("alpha_img.png", alpha_img)
# 获取图片RGB三通道
r, g, b = cv2.split(alpha_img)
# 合并图片rgba四通道,图片后缀必须为.png
cv2.imwrite("removeBg.png", cv2.merge([r, g, b, alpha*255]))
方法二:
# 此时图片是黑底白色图片
cv2.imwrite("alpha.png", alpha)
# 转成透明通道
alpha_channel = alpha[:, :, np.newaxis]
# 将原图与透明通道合并
clip = np.concatenate([org_img, alpha_channel], axis=-1)
# 图片后缀必须为.png
cv2.imwrite("removeBg.png", clip)
原图:

alpha:

抠出的透明背景图:

这篇博客介绍了如何在深度学习matting后处理图片透明度,通过获取的alpha通道将图片抠出并设置为透明背景。提供了两种方法,一种是通过合并原图与透明通道实现,另一种是通过矩阵运算直接抠图。最终结果为带有透明背景的图片。

1万+

被折叠的 条评论
为什么被折叠?



