源码地址https://github.com/switchablenorms/CelebAMask-HQ/blob/master/face_parsing/Data_preprocessing/g_mask.py
代码功能为将分散的label也就是鼻子脸,头发等合成一个label
首先引入包,之后循环读入label,之后新建一个numpy大小为512,512
使用cv2读入, 返回h,w,c
im_base[im!=0]=(idx+1)
import os
import cv2
import glob
import numpy as np
from utils import make_folder
label_list=['skin','nose','eye_g','l_eye','r_eye','l_brow','r_brow','l_ear','r_ear','mouth','u_lip','l_lip','hair','hat','ear_r','neck_l','neck','cloth']
folder_base='CelebAMaskHQ-mask-anno'
folder_save='CelebAMaskHQ-mask'
img_num=3000
make_folder(folder_save)
for k in range(img_num):
folder_num=k//2000
im_base=np.zeros((512,512))
for idx,label in enumerate(label_list):
filename=os.paeh.join(folder_base,str(folder_num),str(k).rjust(5,'0')+'_'+label'+'png')
if (os.path.exists(filename)):
print(label,idx+1)
im=cv2.imread(filename)
im=im[:,:,0]
im_base[im!=0]=(idx+1)
filename_save=os.path.join(folder_save,str(k),'.png')
print(filename_save)
cv2.imwrite(filename_save,im_base)