vision_calibration_pipeline/lib.rs
1//! High-level camera calibration pipelines.
2//!
3//! This crate provides ready-to-use calibration workflows with multiple APIs:
4//!
5//! ## Session API
6//!
7//! The session API uses a mutable state container with step functions.
8//!
9//! ```no_run
10//! use vision_calibration_pipeline::session::CalibrationSession;
11//! use vision_calibration_pipeline::planar_intrinsics::{
12//! PlanarIntrinsicsProblem, step_init, step_optimize, run_calibration,
13//! };
14//! # fn main() -> anyhow::Result<()> {
15//! # let dataset = unimplemented!();
16//!
17//! let mut session = CalibrationSession::<PlanarIntrinsicsProblem>::new();
18//! session.set_input(dataset)?;
19//!
20//! // Option 1: Step-by-step control
21//! step_init(&mut session, None)?;
22//! step_optimize(&mut session, None)?;
23//!
24//! // Option 2: Pipeline function
25//! // run_calibration(&mut session)?;
26//!
27//! let export = session.export()?;
28//! # Ok(())
29//! # }
30//! ```
31
32mod error;
33pub use error::Error;
34
35// Core session framework
36mod planar_family;
37pub mod session;
38
39// Problem-specific modules
40pub mod laserline_device;
41pub mod planar_intrinsics;
42pub mod rig_extrinsics;
43pub mod rig_handeye;
44pub mod scheimpflug_intrinsics;
45pub mod single_cam_handeye;