| import sys |
| from pathlib import Path |
|
|
|
|
| sys.path.insert(0, Path(__file__).parent.as_posix()) |
|
|
|
|
| import cv2 |
| from onnx_runner import OnnxRunner |
|
|
|
|
| def main(args): |
| onnx_path = Path(args.onnx) |
| input_path = Path(args.input) |
| out_dir = Path(args.out_dir) |
|
|
| assert onnx_path.suffix == ".onnx" |
|
|
| if input_path.is_file(): |
| input_images_path = [input_path] |
| else: |
| input_images_path = sorted( |
| [ |
| p |
| for p in input_path.rglob("*") |
| if p.suffix.lower() in (".png", ".jpg", ".jpeg") |
| ] |
| ) |
|
|
| out_dir.mkdir(exist_ok=True, parents=True) |
| onnx_runner = OnnxRunner(onnx_path, args.latent) |
| for input_img_path in input_images_path: |
| input_img_path: Path |
|
|
| input_bgr = cv2.imread(input_img_path.as_posix(), cv2.IMREAD_COLOR) |
| assert input_bgr is not None |
| out_bgr = onnx_runner.run(input_bgr) |
|
|
| out_path = out_dir / f"{input_img_path.stem}.png" |
| cv2.imwrite(out_path.as_posix(), out_bgr) |
| print(f"saved {out_path}") |
|
|
|
|
| if __name__ == "__main__": |
| from argparse import ArgumentParser |
|
|
| parser = ArgumentParser() |
| parser.add_argument("--onnx", type=str, required=True) |
| parser.add_argument("--input", type=str, required=True) |
| parser.add_argument("--out-dir", type=str, required=True) |
| parser.add_argument("--latent", type=str, default=None) |
|
|
| main(parser.parse_args()) |
|
|