我们做demo的时候经常需要把人物或者物体分割出来,一个比较好的展示效果就是用分割mask把背景变成透明的,于是就需要将原本的rgb图像通过mask的指导变成rgba。
一个简单的脚本:
import cv2
import os
import os.path as osp
import numpy as nprgbs = sorted(os.listdir("images/"))
masks = sorted(os.listdir("mask/"))print(len(rgbs))
print(len(masks))for i in range(len(rgbs)):img = cv2.imread(osp.join("images", rgbs[i]))mask = cv2.imread(osp.join("mask", masks[i]))png_img = np.concatenate([img, mask], axis=2)png_img = png_img[:, :, 0:4]cv2.imwrite("rgba/" + rgbs[i], png_img)