import os
import cv2
import numpy as np
import sys
def change_channle(src_path,save_path):
file_list = os.listdir(src_path)
for file in file_list:
img_path = os.path.join(src_path,file)
img = cv2.imread(img_path,-1)
print(np.shape(img))
if np.shape(img)[-1] == 4:
img_fg = img[:,:,0:3]
mask = img[:,:,3]
mask_ = mask
mask = np.tile(mask.reshape(mask.shape[0], mask.shape[1], 1), (1, 1, 3))
mask_fg = mask / 255
mask_bg = (255 - mask) / 255
# img_bg_black = np.zeros(img_fg.shape, dtype = 'uint8')
img_bg_white = np.ones(img_fg.shape, dtype = 'uint8') * 255
# img_bb = np.uint8(mask_fg * img_fg + mask_bg * img_bg_black)
img_wb = np.uint8(mask_fg * img_fg + mask_bg * img_bg_white)
print('save_img.shape',np.shape(img_wb))
save_path_new = os.path.join(save_path,file)
print('save_path',save_path_new)
cv2.imwrite(save_path_new,img_wb)
print(file)
if __name__ == "__main__":
src_path = sys.argv[1]
save_path = sys.argv[2]
change_channle(src_path,save_path)
网友评论