grid2frames / scripts /extract_grid.py
crownemmanuel's picture
Refactor to Python Gradio app
be1cb53
Raw
History Blame Contribute Delete
1.17 kB
#!/usr/bin/env python3
import argparse
from dataclasses import asdict
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
from grid2frame.extractor import detect_grid, read_image
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Detect frame regions in a grid image.")
parser.add_argument("image", type=Path)
parser.add_argument("--min-frame-size", type=int, default=80)
parser.add_argument("--separator-mode", choices=["auto", "dark", "light"], default="auto")
parser.add_argument("--sensitivity", type=int, default=58)
return parser.parse_args()
def main() -> int:
args = parse_args()
image = read_image(args.image)
result = detect_grid(
image,
min_frame_size=args.min_frame_size,
separator_mode=args.separator_mode,
sensitivity=args.sensitivity,
)
print(json.dumps(asdict(result)))
return 0
if __name__ == "__main__":
try:
raise SystemExit(main())
except Exception as error:
print(json.dumps({"error": str(error)}), file=sys.stderr)
raise SystemExit(1)