手部黑色如何解决
wusidong opened this issue · comments
论文中手部黑色是后处理统一填充为平均肤色的
感谢回复,那问下这是根据软件解决的呢?还是通过代码呢?
论文中手部黑色是后处理统一填充为平均肤色的
感谢回复,那问下这是根据软件解决的呢?还是通过代码呢?
这个之前写的,通过膨胀手部颜色来填充黑色,你可以稍微研究下
![hand_mask](https://private-user-images.githubusercontent.com/32841739/250037752-303105f9-999c-4dc3-a393-bfcde96609a8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI1NDA2NjksIm5iZiI6MTcyMjU0MDM2OSwicGF0aCI6Ii8zMjg0MTczOS8yNTAwMzc3NTItMzAzMTA1ZjktOTk5Yy00ZGMzLWEzOTMtYmZjZGU5NjYwOWE4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODAxVDE5MjYwOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNlYjkwNzQ1NDIxZTM5OThkOWNjMzgzZjljMjUzNTRjYTk0ZjQ0NTA5ODVhYjcxMDNjMWQ3M2MzYzcyM2YwZmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.8JXN2fTGZ29KbqkgO2Vqa_wDYmSX_3PRT0ezfef_lEw)
def _dilate(img, iter):
for i in range(iter):
img = cv2.dilate(img, np.ones((3, 3), np.uint8))
return img
def postprocess_tex(img):
target = np.array([[[0, 0, 0]]])
value = np.sqrt(np.sum(np.square(img-target), axis=2 ))
# threshold =
mask = np.zeros([img.shape[0], img.shape[1]])
mask[np.where(value<200)] = 1
dilated_mask = copy.deepcopy(mask)
hand_mask = cv2.imread('../results/hand_mask.png')
hand_mask = cv2.resize(hand_mask, (img.shape[0], img.shape[1]))
dilated_hand_mask = cv2.dilate(hand_mask, kernel=np.ones((3, 3), np.uint8))
mask[np.where(hand_mask[:, :, 0] == 0)] = 0
dilated_mask[np.where(dilated_hand_mask[:, :, 0] == 0)] = 0
img[np.where(mask == 1)] = [0, 0, 0]
hand_img = np.zeros_like(img)
hand_img[np.where(hand_mask==255)] = img[np.where(hand_mask==255)] #
hand_img[:, :, 0] = _dilate(hand_img[:, :, 0], 50)
hand_img[:, :, 1] = _dilate(hand_img[:, :, 1], 50)
hand_img[:, :, 2] = _dilate(hand_img[:, :, 2], 50)
img[np.where(dilated_mask == 1)] = hand_img[np.where(dilated_mask == 1)]
return img