CoolFace
Apppublic

WompUniversity/Inpaint-Anything-no-errors

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
0likes
visual_mask_on_img.py63 linesDownload Raw Back to utils
1import cv22import sys3import argparse4import numpy as np5from PIL import Image6from pathlib import Path7from matplotlib import pyplot as plt8from typing import Any, Dict, List9import glob10 11from utils import load_img_to_array, show_mask12 13 14def setup_args(parser):15    parser.add_argument(16        "--input_img", type=str, required=True,17        help="Path to a single input img",18    )19    parser.add_argument(20        "--input_mask_glob", type=str, required=True,21        help="Glob to input masks",22    )23    parser.add_argument(24        "--output_dir", type=str, required=True,25        help="Output path to the directory with results.",26    )27 28if __name__ == "__main__":29    """Example usage:30    python visual_mask_on_img.py \31        --input_img FA_demo/FA1_dog.png \32        --input_mask_glob "results/FA1_dog/mask*.png" \33        --output_dir results34    """35    parser = argparse.ArgumentParser()36    setup_args(parser)37    args = parser.parse_args(sys.argv[1:])38 39    img = load_img_to_array(args.input_img)40    img_stem = Path(args.input_img).stem41 42    mask_ps = sorted(glob.glob(args.input_mask_glob))43 44    out_dir = Path(args.output_dir) / img_stem45    out_dir.mkdir(parents=True, exist_ok=True)46 47    for mask_p in mask_ps:48        mask = load_img_to_array(mask_p)49        mask = mask.astype(np.uint8)50 51        # path to the results52        img_mask_p = out_dir / f"with_{Path(mask_p).name}"53 54        # save the masked image55        dpi = plt.rcParams['figure.dpi']56        height, width = img.shape[:2]57        plt.figure(figsize=(width/dpi/0.77, height/dpi/0.77))58        plt.imshow(img)59        plt.axis('off')60        show_mask(plt.gca(), mask, random_color=False)61        plt.savefig(img_mask_p, bbox_inches='tight', pad_inches=0)62        plt.close()63