Expand description
Two-stage dense corner detector abstraction.
DenseDetector is the contract the multiscale orchestrator drives
over: each implementor computes a dense per-pixel response over an
ImageView (stage 1) and extracts subpixel corner peaks from it
(stage 2). Image-domain subpixel refinement (center-of-mass,
Förstner, saddle-point, …) is not part of this trait — it runs
detector-agnostically via
crate::detect::refine_corners_on_image.
Two zero-sized implementors live alongside the trait:
ChessDetector— wraps the ChESS response kernel (crate::detect::chess::response::chess_response_u8) and the threshold + NMS + cluster-filter stage (crate::detect::detect_peaks_from_response).RadonDetector— wraps the whole-image Duda-Frese Radon response (crate::detect::radon::radon_response_u8) and the threshold + NMS + 3-point Gaussian peak-fit stage (crate::detect::radon::detect_peaks_from_radon).
The free functions named above remain public; the trait is an additive uniform interface, not a replacement.
§Toolchain note
DenseDetector::Response is a generic associated type (GAT);
downstream consumers need Rust 1.65 or newer. This workspace
already pins nightly via rust-toolchain.toml, so the trait is
always available here.
Structs§
- Chess
Buffers - Reusable scratch for
ChessDetector. Wraps an ownedResponseMap; the ChESS response kernel currently allocates its output, and this struct keeps the latest map alive so the trait’sResponse<'a> = &'a ResponseMapcan borrow it across the two stages. - Chess
Detector - Zero-sized
DenseDetectorimplementor for the ChESS kernel. - Radon
Detector - Zero-sized
DenseDetectorimplementor for the whole-image Duda-Frese Radon kernel.
Traits§
- Dense
Detector - Two-stage dense corner detector contract.