Skip to main content

RefineResult

Struct RefineResult 

Source
#[non_exhaustive]
pub struct RefineResult { pub x: f32, pub y: f32, pub score: f32, pub status: RefineStatus, }
Expand description

Result of refining a single corner candidate.

Coordinates are in the input image pixel frame, with the origin at the top-left corner of the top-left pixel (i.e. pixel (0, 0) has its center at (0.0, 0.0)). Both x and y are subpixel values in pixels — no normalization or scaling is applied by the refiner itself.

Check status before using x and y: only RefineStatus::Accepted guarantees that the refiner moved the position. For all other statuses the coordinates are copied unchanged from the input seed.

The score field measures how well the local image structure supports the refined position. Its meaning depends on the active refiner:

  • CenterOfMass: score is the sum of positive response weights in the patch (Σ w where w = response.clamp(0, ∞)). Higher is stronger; units match the ChESS response scale. A score of 0.0 means no positive response was found.
  • Förstner: score is det(T) / (trace(T)² + ε) where T is the structure tensor. Ranges roughly in (0, 0.25]; higher means the patch has balanced gradient energy in both directions (closer to a true corner). The value 0.0 is returned on all failure paths.
  • SaddlePoint: score is sqrt(|det(H)|) where H is the fitted quadratic Hessian. Larger magnitude indicates a sharper saddle (steeper curvature); no absolute scale is defined.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§x: f32

Refined subpixel x coordinate in input-image pixels. Valid only when status is RefineStatus::Accepted; otherwise equals the input seed x.

§y: f32

Refined subpixel y coordinate in input-image pixels. Valid only when status is RefineStatus::Accepted; otherwise equals the input seed y.

§score: f32

Refiner-specific quality score. Higher values indicate stronger evidence for the refined position. See the RefineResult docs for per-refiner definitions. Always 0.0 on OutOfBounds and may be 0.0 on other non-Accepted statuses.

§status: RefineStatus

Whether the refiner accepted, rejected, or could not process this candidate. See RefineStatus.

Implementations§

Source§

impl RefineResult

Source

pub fn accepted(xy: [f32; 2], score: f32) -> Self

Build a RefineStatus::Accepted result at xy with the given score.

Trait Implementations§

Source§

impl Clone for RefineResult

Source§

fn clone(&self) -> RefineResult

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for RefineResult

Source§

impl Debug for RefineResult

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more