用途
使用单图人体三维重现算法PIFu的时候,重建需要输入一张去背景人像图和mask图,如下所示:
- 去背景人像图
- mask图
Code
请安装numba加快运算速度。
pip install numba
无背景人像图,位深度为32位
mask图,位深度为8位
import cv2
import numba
from PIL import Image
# 带numba加速计算,请安装numba
# pip install numba
@numba.jit
def png2mask(img):
shape = img.shape
width = shape[0]
height = shape[1]
for y in range(height):
for x in range(width):
color = img[x, y]
if color[3] == 0:
img[x, y] = [0, 0, 0, 255]
else:
img[x, y] = [255, 255, 255, 255]
return img
if __name__ == '__main__':
img = cv2.imread('rmbg.png', -1)
img_copy = img.copy()
result = png2mask(img_copy)
image = Image.fromarray(result)
# 转8位位深度
image = image.convert('L')
image.save('rmbg_mask.png')
image.show()
测试
人像去背景可使用这个在线去背景的web应用,removebg
- 输入图片如下
- 脚本生成的mask图