Files

86 lines
2.9 KiB
Python

import argparse
from pathlib import Path
from rectificationclasses.rectification import Rectification
def parse_args():
parser = argparse.ArgumentParser(description="Batch stereo rectification")
parser.add_argument("--project", type=str, required=True, help="Project name used for Calib-data and processing_data (e.g. Olsen_wings)")
parser.add_argument(
"--raw_project",
type=str,
default=None,
help="Project name used in 3D-Scans (default: project with '_' replaced by '-')",
)
parser.add_argument("--date", type=str, required=True, help="Date folder (e.g. 2026-05-12)")
parser.add_argument(
"--session",
type=str,
default=None,
help="Process only this session folder (e.g. session53). Default: all sessions under the date.",
)
parser.add_argument("--calib_name", type=str, default="calib1", help="Calibration folder under Calib-data/<project>/<date>/")
parser.add_argument(
"--pairs",
type=str,
default="lc-rc,lc-rg,lc-ir",
help="Comma-separated pair list, e.g. lc-rc,lc-rg,lc-ir",
)
parser.add_argument(
"--keep_lc_from_pair",
type=str,
default="lc-rc",
help="Pair whose rectified LC frames are kept in 02_rect_images.",
)
parser.add_argument(
"--source_date_root",
type=str,
default=None,
help="Override source root (default: ~/3D-Scans/<raw_project>/<date>)",
)
parser.add_argument(
"--calib_params_dir",
type=str,
default=None,
help="Override calib params dir (default: ~/Calib-data/<project>/<date>/<calib_name>/params)",
)
parser.add_argument(
"--processing_date_root",
type=str,
default=None,
help="Override processing target root (default: ~/Speckle-Scanner_Processing_data/<project>/<date>)",
)
return parser.parse_args()
def main():
args = parse_args()
home = Path.home()
raw_project = args.raw_project or args.project.replace("_", "-")
pairs = tuple([p.strip() for p in args.pairs.split(",") if p.strip()])
source_date_root = Path(args.source_date_root) if args.source_date_root else (
home / "3D-Scans" / raw_project / args.date
)
calib_params_dir = Path(args.calib_params_dir) if args.calib_params_dir else (
home / "Calib-data" / args.project / args.date / args.calib_name / "params"
)
processing_date_root = Path(args.processing_date_root) if args.processing_date_root else (
home / "Speckle-Scanner_Processing_data" / args.project / args.date
)
rectificator = Rectification(
source_date_root=str(source_date_root),
calib_params_dir=str(calib_params_dir),
processing_date_root=str(processing_date_root),
pairs=pairs,
keep_lc_from_pair=args.keep_lc_from_pair,
session_filter=args.session,
)
rectificator.run_batch()
if __name__ == "__main__":
main()