Pipeline Overview
At a high level, the workflow looks like this:
- Input corners: supply a list of
calib_targets_core::Cornervalues, typically from a ChESS detector. - Estimate grid axes: cluster corner orientations to get two dominant grid directions.
- Build a grid graph: connect corners that plausibly lie on the same grid lines.
- Assign integer coordinates: BFS the graph to produce
(i, j)grid indices. - Select the best board: choose the best connected component that matches expected size.
- Rectify (optional): compute a global homography or mesh warp to build a rectified view.
- Decode markers (optional): decode per-cell directly, or scan a rectified grid if you need a full rectified image.
- Align board (optional): map markers to a known layout and assign corner IDs.
Output types are standardized in calib-targets-core as TargetDetection with LabeledCorner values. Higher-level crates enrich that output with additional metadata (inliers, marker detections, rectified views).