inspect_ddti_mask.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from __future__ import annotations
  2. import argparse
  3. import sys
  4. from pathlib import Path
  5. ROOT_DIR = Path(__file__).resolve().parents[3]
  6. if str(ROOT_DIR) not in sys.path:
  7. sys.path.insert(0, str(ROOT_DIR))
  8. from lib.data import build_ddti_mask, parse_ddti_xml
  9. def main() -> None:
  10. parser = argparse.ArgumentParser(description="Inspect DDTI xml to mask conversion.")
  11. parser.add_argument("--image", required=True, help="Path to DDTI image")
  12. parser.add_argument("--xml", required=True, help="Path to DDTI xml")
  13. parser.add_argument("--save", default=None, help="Optional output path for generated mask")
  14. args = parser.parse_args()
  15. polygons = parse_ddti_xml(args.xml)
  16. print("available image indices:", sorted(polygons.keys()))
  17. mask = build_ddti_mask(args.image, args.xml)
  18. print("mask_size:", mask.size, "bbox:", mask.getbbox())
  19. if args.save:
  20. save_path = Path(args.save)
  21. save_path.parent.mkdir(parents=True, exist_ok=True)
  22. mask.save(save_path)
  23. print("saved:", save_path)
  24. if __name__ == "__main__":
  25. main()