Introduce a robust coordinate transformation system to manage the relationship
between original CT space and rotated/standardized segmentation spaces.
This includes a new directory hierarchy to separate unrotated crops from
rotated outputs and utility functions for geometric mapping.
Key changes:
- Implement `imaging/transforms.py` to handle bounding box metadata,
affine standardization, and coordinate mapping between spaces.
- Restructure dataset output: unrotated segmentation files (binary, SDF,
ROI, etc.) are now stored in a `<vol>/crop/` subdirectory to distinguish
them from `<vol>/rotated/` aligned versions.
- Add `level_file_path` utility to abstract file discovery across legacy
(top-level) and new (crop-based) directory structures.
- Enhance `seg_bone` to capture and export bounding box metadata
(`bbox2`, `nn_bbox`, `bbox_orig`) into `transform.json`.
- Implement `xfr_cbt_native.py` for mapping screw positions back to
original CT space.
- Update preprocessing and visualization scripts to support the new
directory layout and transformation metadata.
- Improve TinyDB metadata migration logic to prevent accidental corruption
of existing database structures.
Introduces a new scoring component for vertebral body (VBODY) rewards
to improve optimization accuracy. The update includes:
- Added `vbody_tensor` to `OptimizationContext` and scoring functions
to reward screw placement within the vertebral body.
- Enhanced `segment_spinous_process` with diagnostic capabilities to
detect spinous process absence (e.g., post-laminectomy).
- Improved `resample_img` to prevent physical boundary clipping and
handle interpolation more robustly for CT and label data.
- Implemented a metadata cache using TinyDB in the preprocessing
pipeline to skip low-resolution or insufficient scans efficiently.
- Added robust error handling for NFS-based file operations and
directory creation.
- Added new visualization tools for bone figures and level plotting.
refactor(imaging): improve segmentation and resampling precision
- Refactored `seg_bone` to support original resolution binary masks and
Signed Maurer Distance Maps (SMD) for more accurate boundary handling.
- Updated `resample_img` to use `ceil` for output size calculation to
ensure full physical coverage.
- Optimized `process_single_image` to utilize metadata for skipping
processing of invalid or low-quality scans.