from __future__ import annotations import argparse import sys from pathlib import Path ROOT_DIR = Path(__file__).resolve().parents[3] if str(ROOT_DIR) not in sys.path: sys.path.insert(0, str(ROOT_DIR)) from lib.data import build_ddti_mask, parse_ddti_xml def main() -> None: parser = argparse.ArgumentParser(description="Inspect DDTI xml to mask conversion.") parser.add_argument("--image", required=True, help="Path to DDTI image") parser.add_argument("--xml", required=True, help="Path to DDTI xml") parser.add_argument("--save", default=None, help="Optional output path for generated mask") args = parser.parse_args() polygons = parse_ddti_xml(args.xml) print("available image indices:", sorted(polygons.keys())) mask = build_ddti_mask(args.image, args.xml) print("mask_size:", mask.size, "bbox:", mask.getbbox()) if args.save: save_path = Path(args.save) save_path.parent.mkdir(parents=True, exist_ok=True) mask.save(save_path) print("saved:", save_path) if __name__ == "__main__": main()