Spaces:
Build error
Build error
| # Author: aqeelanwar | |
| # Created: 6 July,2020, 12:14 AM | |
| # Email: aqeel.anwar@gatech.edu | |
| from PIL import ImageColor | |
| import cv2 | |
| import numpy as np | |
| COLOR = [ | |
| "#fc1c1a", | |
| "#177ABC", | |
| "#94B6D2", | |
| "#A5AB81", | |
| "#DD8047", | |
| "#6b425e", | |
| "#e26d5a", | |
| "#c92c48", | |
| "#6a506d", | |
| "#ffc900", | |
| "#ffffff", | |
| "#000000", | |
| "#49ff00", | |
| ] | |
| def color_the_mask(mask_image, color, intensity): | |
| assert 0 <= intensity <= 1, "intensity should be between 0 and 1" | |
| RGB_color = ImageColor.getcolor(color, "RGB") | |
| RGB_color = (RGB_color[2], RGB_color[1], RGB_color[0]) | |
| orig_shape = mask_image.shape | |
| bit_mask = mask_image[:, :, 3] | |
| mask_image = mask_image[:, :, 0:3] | |
| color_image = np.full(mask_image.shape, RGB_color, np.uint8) | |
| mask_color = cv2.addWeighted(mask_image, 1 - intensity, color_image, intensity, 0) | |
| mask_color = cv2.bitwise_and(mask_color, mask_color, mask=bit_mask) | |
| colored_mask = np.zeros(orig_shape, dtype=np.uint8) | |
| colored_mask[:, :, 0:3] = mask_color | |
| colored_mask[:, :, 3] = bit_mask | |
| return colored_mask | |
| def texture_the_mask(mask_image, texture_path, intensity): | |
| assert 0 <= intensity <= 1, "intensity should be between 0 and 1" | |
| orig_shape = mask_image.shape | |
| bit_mask = mask_image[:, :, 3] | |
| mask_image = mask_image[:, :, 0:3] | |
| texture_image = cv2.imread(texture_path) | |
| texture_image = cv2.resize(texture_image, (orig_shape[1], orig_shape[0])) | |
| mask_texture = cv2.addWeighted( | |
| mask_image, 1 - intensity, texture_image, intensity, 0 | |
| ) | |
| mask_texture = cv2.bitwise_and(mask_texture, mask_texture, mask=bit_mask) | |
| textured_mask = np.zeros(orig_shape, dtype=np.uint8) | |
| textured_mask[:, :, 0:3] = mask_texture | |
| textured_mask[:, :, 3] = bit_mask | |
| return textured_mask | |
| # cloth_mask = cv2.imread("masks/templates/cloth.png", cv2.IMREAD_UNCHANGED) | |
| # # cloth_mask = color_the_mask(cloth_mask, color=COLOR[0], intensity=0.5) | |
| # path = "masks/textures" | |
| # path, dir, files = os.walk(path).__next__() | |
| # first_frame = True | |
| # col_limit = 6 | |
| # i = 0 | |
| # # img_concat_row=[] | |
| # img_concat = [] | |
| # # for f in files: | |
| # # if "._" not in f: | |
| # # print(f) | |
| # # i += 1 | |
| # # texture_image = cv2.imread(os.path.join(path, f)) | |
| # # m = texture_the_mask(cloth_mask, texture_image, intensity=0.5) | |
| # # if first_frame: | |
| # # img_concat_row = m | |
| # # first_frame = False | |
| # # else: | |
| # # img_concat_row = cv2.hconcat((img_concat_row, m)) | |
| # # | |
| # # if i % col_limit == 0: | |
| # # if len(img_concat) > 0: | |
| # # img_concat = cv2.vconcat((img_concat, img_concat_row)) | |
| # # else: | |
| # # img_concat = img_concat_row | |
| # # first_frame = True | |
| # | |
| # ## COlor the mask | |
| # thresholds = np.arange(0.1,0.9,0.05) | |
| # for intensity in thresholds: | |
| # c=COLOR[2] | |
| # # intensity = 0.5 | |
| # if "._" not in c: | |
| # print(intensity) | |
| # i += 1 | |
| # # texture_image = cv2.imread(os.path.join(path, f)) | |
| # m = color_the_mask(cloth_mask, c, intensity=intensity) | |
| # if first_frame: | |
| # img_concat_row = m | |
| # first_frame = False | |
| # else: | |
| # img_concat_row = cv2.hconcat((img_concat_row, m)) | |
| # | |
| # if i % col_limit == 0: | |
| # if len(img_concat) > 0: | |
| # img_concat = cv2.vconcat((img_concat, img_concat_row)) | |
| # else: | |
| # img_concat = img_concat_row | |
| # first_frame = True | |
| # | |
| # | |
| # cv2.imshow("k", img_concat) | |
| # cv2.imwrite("combine_N95_left.png", img_concat) | |
| # cv2.waitKey(0) | |
| # cc = 1 | |