From cd3d2a6c6fb2b6d975b19f1eb1134b569aa7de96 Mon Sep 17 00:00:00 2001 From: alexbofa <58225118+alexbofa@users.noreply.github.com> Date: Sat, 21 Oct 2023 23:53:10 +0300 Subject: [PATCH] Delete stage3_5.py --- stage3_5.py | 178 ---------------------------------------------------- 1 file changed, 178 deletions(-) delete mode 100644 stage3_5.py diff --git a/stage3_5.py b/stage3_5.py deleted file mode 100644 index 26607a7..0000000 --- a/stage3_5.py +++ /dev/null @@ -1,178 +0,0 @@ -import cv2 -import os -import glob -import shutil -import numpy as np -from PIL import Image - -from color_matcher import ColorMatcher -from color_matcher.normalizer import Normalizer - -def resize_img(img, w, h): - if img.shape[0] + img.shape[1] < h + w: - interpolation = interpolation=cv2.INTER_CUBIC - else: - interpolation = interpolation=cv2.INTER_AREA - - return cv2.resize(img, (w, h), interpolation=interpolation) - -def get_pair_of_img(img_path, target_dir): - img_basename = os.path.basename(img_path) - target_path = os.path.join( target_dir , img_basename ) - return target_path if os.path.isfile( target_path ) else None - -def remove_pngs_in_dir(path): - if not os.path.isdir(path): - return - - pngs = glob.glob( os.path.join(path, "*.png") ) - for png in pngs: - os.remove(png) - -def get_pair_of_img(img, target_dir): - img_basename = os.path.basename(img) - - pair_path = os.path.join( target_dir , img_basename ) - if os.path.isfile( pair_path ): - return pair_path - print("!!! pair of "+ img + " not in " + target_dir) - return "" - -def get_mask_array(mask_path): - if not mask_path: - return None - mask_array = np.asarray(Image.open( mask_path )) - if mask_array.ndim == 2: - mask_array = mask_array[:, :, np.newaxis] - mask_array = mask_array[:,:,:1] - mask_array = mask_array/255 - return mask_array - -def color_match(imgs, ref_image, color_matcher_method, dst_path): - cm = ColorMatcher(method=color_matcher_method) - - i = 0 - total = len(imgs) - - for fname in imgs: - - img_src = Image.open(fname) - img_src = Normalizer(np.asarray(img_src)).type_norm() - - img_src = cm.transfer(src=img_src, ref=ref_image, method=color_matcher_method) - - img_src = Normalizer(img_src).uint8_norm() - Image.fromarray(img_src).save(os.path.join(dst_path, os.path.basename(fname))) - - i += 1 - print("{0}/{1}".format(i, total)) - - imgs = sorted( glob.glob( os.path.join(dst_path, "*.png") ) ) - - -def ebsynth_utility_stage3_5(dbg, project_args, color_matcher_method, st3_5_use_mask, st3_5_use_mask_ref, st3_5_use_mask_org, color_matcher_ref_type, color_matcher_ref_image): - dbg.print("stage3.5") - dbg.print("") - - _, _, frame_path, frame_mask_path, org_key_path, img2img_key_path, _ = project_args - - backup_path = os.path.join( os.path.join( img2img_key_path, "..") , "st3_5_backup_img2img_key") - backup_path = os.path.normpath(backup_path) - - if not os.path.isdir( backup_path ): - dbg.print("{0} not found -> create backup.".format(backup_path)) - os.makedirs(backup_path, exist_ok=True) - - imgs = glob.glob( os.path.join(img2img_key_path, "*.png") ) - - for img in imgs: - img_basename = os.path.basename(img) - pair_path = os.path.join( backup_path , img_basename ) - shutil.copy( img , pair_path) - - else: - dbg.print("{0} found -> Treat the images here as originals.".format(backup_path)) - - org_imgs = sorted( glob.glob( os.path.join(backup_path, "*.png") ) ) - head_of_keyframe = org_imgs[0] - - # open ref img - ref_image = color_matcher_ref_image - if not ref_image: - dbg.print("color_matcher_ref_image not set") - - if color_matcher_ref_type == 0: - #'original video frame' - dbg.print("select -> original video frame") - ref_image = Image.open( get_pair_of_img(head_of_keyframe, frame_path) ) - else: - #'first frame of img2img result' - dbg.print("select -> first frame of img2img result") - ref_image = Image.open( get_pair_of_img(head_of_keyframe, backup_path) ) - - ref_image = np.asarray(ref_image) - - if st3_5_use_mask_ref: - mask = get_pair_of_img(head_of_keyframe, frame_mask_path) - if mask: - mask_array = get_mask_array( mask ) - ref_image = ref_image * mask_array - ref_image = ref_image.astype(np.uint8) - - else: - dbg.print("select -> color_matcher_ref_image") - ref_image = np.asarray(ref_image) - - - if color_matcher_method in ('mvgd', 'hm-mvgd-hm'): - sample_img = Image.open(head_of_keyframe) - ref_image = resize_img( ref_image, sample_img.width, sample_img.height ) - - ref_image = Normalizer(ref_image).type_norm() - - - if st3_5_use_mask_org: - tmp_path = os.path.join( os.path.join( img2img_key_path, "..") , "st3_5_tmp") - tmp_path = os.path.normpath(tmp_path) - dbg.print("create {0} for masked original image".format(tmp_path)) - - remove_pngs_in_dir(tmp_path) - os.makedirs(tmp_path, exist_ok=True) - - for org_img in org_imgs: - image_basename = os.path.basename(org_img) - - org_image = np.asarray(Image.open(org_img)) - - mask = get_pair_of_img(org_img, frame_mask_path) - if mask: - mask_array = get_mask_array( mask ) - org_image = org_image * mask_array - org_image = org_image.astype(np.uint8) - - Image.fromarray(org_image).save( os.path.join( tmp_path, image_basename ) ) - - org_imgs = sorted( glob.glob( os.path.join(tmp_path, "*.png") ) ) - - - color_match(org_imgs, ref_image, color_matcher_method, img2img_key_path) - - - if st3_5_use_mask or st3_5_use_mask_org: - imgs = sorted( glob.glob( os.path.join(img2img_key_path, "*.png") ) ) - for img in imgs: - mask = get_pair_of_img(img, frame_mask_path) - if mask: - mask_array = get_mask_array( mask ) - bg = get_pair_of_img(img, frame_path) - bg_image = np.asarray(Image.open( bg )) - fg_image = np.asarray(Image.open( img )) - - final_img = fg_image * mask_array + bg_image * (1-mask_array) - final_img = final_img.astype(np.uint8) - - Image.fromarray(final_img).save(img) - - dbg.print("") - dbg.print("completed.") -