pub struct SaddlePointRefiner { /* private fields */ }Expand description
Saddle-point quadratic-surface subpixel refiner.
Fits a 2nd-order surface to the image patch and locates the saddle
(the unique stationary point where the Hessian is indefinite). The
refiner requires the image intensity patch (passed via
RefineContext::image); it ignores the response map.
Reuses a fixed-size 6×6 scratch matrix across calls so there is no
per-corner allocation.
Implementations§
Source§impl SaddlePointRefiner
impl SaddlePointRefiner
Sourcepub fn new(cfg: SaddlePointConfig) -> Self
pub fn new(cfg: SaddlePointConfig) -> Self
Construct a refiner with the given configuration.
Trait Implementations§
Source§impl CornerRefiner for SaddlePointRefiner
impl CornerRefiner for SaddlePointRefiner
Source§fn radius(&self) -> i32
fn radius(&self) -> i32
Half-width of the patch the refiner needs around the seed,
in input-image pixels. The caller must ensure the seed is at
least this many pixels away from every image border before
calling
refine; violating this
contract yields RefineStatus::OutOfBounds.Source§fn refine(&mut self, seed_xy: [f32; 2], ctx: RefineContext<'_>) -> RefineResult
fn refine(&mut self, seed_xy: [f32; 2], ctx: RefineContext<'_>) -> RefineResult
Attempt to refine the subpixel position of a corner candidate. Read more
Auto Trait Implementations§
impl Freeze for SaddlePointRefiner
impl RefUnwindSafe for SaddlePointRefiner
impl Send for SaddlePointRefiner
impl Sync for SaddlePointRefiner
impl Unpin for SaddlePointRefiner
impl UnsafeUnpin for SaddlePointRefiner
impl UnwindSafe for SaddlePointRefiner
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more