From addc96fe3e84a0238d9671c2f83fbdad35111be3 Mon Sep 17 00:00:00 2001 From: Colombo Date: Thu, 4 Jun 2020 16:42:36 +0400 Subject: [PATCH] fix --- merger/MergeMasked.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/merger/MergeMasked.py b/merger/MergeMasked.py index bb93966..2b7438c 100644 --- a/merger/MergeMasked.py +++ b/merger/MergeMasked.py @@ -1,13 +1,15 @@ +import sys import traceback import cv2 import numpy as np from core import imagelib -from facelib import FaceType, LandmarksProcessor -from core.interact import interact as io from core.cv2ex import * +from core.interact import interact as io +from facelib import FaceType, LandmarksProcessor +is_windows = sys.platform[0:3] == 'win' xseg_input_size = 256 def MergeMaskedFace (predictor_func, predictor_input_shape, @@ -149,7 +151,7 @@ def MergeMaskedFace (predictor_func, predictor_input_shape, out_img = np.clip (out_img, 0.0, 1.0 ) else: - + # Process if the mask meets minimum size maxregion = np.argwhere( img_face_mask_a >= 0.1 ) if maxregion.size != 0: @@ -160,7 +162,7 @@ def MergeMaskedFace (predictor_func, predictor_input_shape, if min(lenx,leny) >= 4: wrk_face_mask_area_a = wrk_face_mask_a.copy() wrk_face_mask_area_a[wrk_face_mask_area_a>0] = 1.0 - + if 'seamless' not in cfg.mode and cfg.color_transfer_mode != 0: if cfg.color_transfer_mode == 1: #rct prd_face_bgr = imagelib.reinhard_color_transfer ( np.clip( prd_face_bgr*wrk_face_mask_area_a*255, 0, 255).astype(np.uint8), @@ -232,10 +234,15 @@ def MergeMaskedFace (predictor_func, predictor_input_shape, cfg_mp = cfg.motion_blur_power / 100.0 - # linux opencv can produce nan's so there will be errors in multiplying and glitches in videos - img_bgr = np.nan_to_num(img_bgr) + if not is_windows: + # linux opencv can produce nan's so there will be errors in multiplying and glitches in videos + img_bgr = np.nan_to_num(img_bgr) + img_face_mask_a = np.nan_to_num(img_face_mask_a) - out_img = np.nan_to_num(out_img) + + if not is_windows: + out_img = np.nan_to_num(out_img) + out_img = img_bgr*(1-img_face_mask_a) + (out_img*img_face_mask_a) if ('seamless' in cfg.mode and cfg.color_transfer_mode != 0) or \ @@ -311,7 +318,7 @@ def MergeMaskedFace (predictor_func, predictor_input_shape, out_img = (out_img*(1.0-alpha) + out_img_reduced*alpha) else: out_img = img_bgr.copy() - + out_merging_mask_a = img_face_mask_a return out_img, out_merging_mask_a @@ -347,4 +354,4 @@ def MergeMasked (predictor_func, final_img = np.concatenate ( [final_img, final_mask], -1) - return (final_img*255).astype(np.uint8) \ No newline at end of file + return (final_img*255).astype(np.uint8)