Expand description
Core primitives for computing ChESS responses and extracting subpixel corners.
§Overview
This crate exposes two main building blocks:
response– dense ChESS response computation on 8‑bit grayscale images.detect+refine– thresholding, non‑maximum suppression (NMS), and pluggable subpixel refinement (center-of-mass, Förstner, saddle-point).
The response is based on a 16‑sample ring (see ring) and is intended for
chessboard‑like corner detection, as described in the ChESS paper
(“Chess‑board Extraction by Subtraction and Summation”).
§Features
std(default) – enables use of the Rust standard library. When disabled, the crate isno_std+alloc.rayon– parallelizes the dense response computation over image rows using therayoncrate. This does not change numerical results, only performance on multi‑core machines.simd– enables a SIMD‑accelerated inner loop for the response computation, based onportable_simd. This feature currently requires a nightly compiler and is intended as a performance optimization; the scalar path remains the reference implementation.tracing– emits structured spans around response and detector functions using thetracingecosystem, useful for profiling and diagnostics.
Feature combinations:
- no features /
stdonly – single‑threaded scalar implementation. rayon– same scalar math, but rows are processed in parallel.simd– single‑threaded, but the inner ring computation is vectorized.rayon + simd– rows are processed in parallel and each row uses the SIMD‑accelerated inner loop.
The detector in detect is independent of rayon/simd, and tracing
only adds observability; none of these features change the numerical
results, only performance and instrumentation.
The ChESS idea is proposed in the papaer Bennett, Lasenby, ChESS: A Fast and Accurate Chessboard Corner Detector, CVIU 2014
Re-exports§
pub use crate::descriptor::CornerDescriptor;pub use crate::refine::CenterOfMassConfig;pub use crate::refine::CenterOfMassRefiner;pub use crate::refine::CornerRefiner;pub use crate::refine::ForstnerConfig;pub use crate::refine::ForstnerRefiner;pub use crate::refine::RefineContext;pub use crate::refine::RefineResult;pub use crate::refine::RefineStatus;pub use crate::refine::Refiner;pub use crate::refine::RefinerKind;pub use crate::refine::SaddlePointConfig;pub use crate::refine::SaddlePointRefiner;pub use imageview::ImageView;
Modules§
- descriptor
- Corner descriptors and helpers for chessboard detection.
- detect
- Corner detection utilities built on top of the dense ChESS response map.
- imageview
- refine
- Pluggable subpixel refinement backends for ChESS corners.
- response
- Dense ChESS response computation for 8-bit grayscale inputs.
- ring
- Canonical 16-sample rings used by the ChESS detector.
Structs§
- Chess
Params - Tunable parameters for the ChESS response computation and corner detection.
- Response
Map - Dense response map in row-major layout.