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 | |