File size: 1,169 Bytes
ed8146d
 
be1cb53
ed8146d
 
 
 
be1cb53
ed8146d
be1cb53
ed8146d
 
 
 
 
 
 
 
 
 
 
 
 
be1cb53
 
 
ed8146d
 
 
 
be1cb53
ed8146d
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/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)