| Crates.io | calib-targets-charuco |
| lib.rs | calib-targets-charuco |
| version | 0.2.2 |
| created_at | 2025-12-28 10:09:58.111492+00 |
| updated_at | 2026-01-03 17:59:48.067489+00 |
| description | ChArUco board detector built on top of calib-targets-core |
| homepage | https://vitalyvorobyev.github.io/calib-targets-rs/ |
| repository | https://github.com/VitalyVorobyev/calib-targets-rs |
| max_upload_size | |
| id | 2008545 |
| size | 136,609 |

ChArUco board detector built on top of calib-targets-core and calib-targets-aruco.
ChArUco dictionaries and board layouts are fully compatible with OpenCV's aruco/charuco implementation.
use calib_targets_aruco::builtins;
use calib_targets_charuco::{CharucoBoardSpec, CharucoDetector, CharucoDetectorParams, MarkerLayout};
use calib_targets_core::{Corner, GrayImageView};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let board = CharucoBoardSpec {
rows: 5,
cols: 7,
cell_size: 1.0,
marker_size_rel: 0.7,
dictionary: builtins::DICT_4X4_50,
marker_layout: MarkerLayout::OpenCvCharuco,
};
let params = CharucoDetectorParams::for_board(&board);
let detector = CharucoDetector::new(params)?;
let pixels = vec![0u8; 32 * 32];
let view = GrayImageView {
width: 32,
height: 32,
data: &pixels,
};
let corners: Vec<Corner> = Vec::new();
let _ = detector.detect(&view, &corners)?;
Ok(())
}
tracing: enables tracing output in the detection pipeline.Python bindings are provided via the workspace facade (calib_targets module).
See crates/calib-targets-py/README.md in the repo root for setup.