#[non_exhaustive]pub struct SaddlePointConfig {
pub radius: i32,
pub det_margin: f32,
pub max_offset: f32,
pub min_abs_det: f32,
}Expand description
Configuration for the SaddlePointRefiner.
All thresholds below are advanced tuning knobs. The defaults are appropriate for most scenes; adjust only if you observe excessive rejection or acceptance of clearly-wrong refinements.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.radius: i32Half-size of the image patch used for the surface fit
(full patch is 2·radius+1 × 2·radius+1). Default is 2
(5×5 patch).
Advanced tuning.
det_margin: f32The Hessian determinant of the fitted quadratic must be more
negative than -det_margin (i.e. det(H) < -det_margin) for
a saddle to be confirmed. Increase to require a sharper saddle
before accepting.
Advanced tuning.
max_offset: f32Maximum displacement (pixels) from the seed to the fitted
stationary point. Refinements with a larger displacement are
rejected. Mirrors ForstnerConfig::max_offset.
Advanced tuning.
min_abs_det: f32Minimum absolute value of det(H). Rejects near-flat surfaces
where the determinant is too close to zero to be meaningful.
Advanced tuning.
Trait Implementations§
Source§impl Clone for SaddlePointConfig
impl Clone for SaddlePointConfig
Source§fn clone(&self) -> SaddlePointConfig
fn clone(&self) -> SaddlePointConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SaddlePointConfig
Source§impl Debug for SaddlePointConfig
impl Debug for SaddlePointConfig
Source§impl Default for SaddlePointConfig
impl Default for SaddlePointConfig
Source§fn default() -> SaddlePointConfig
fn default() -> SaddlePointConfig
Source§impl<'de> Deserialize<'de> for SaddlePointConfigwhere
SaddlePointConfig: Default,
impl<'de> Deserialize<'de> for SaddlePointConfigwhere
SaddlePointConfig: Default,
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SaddlePointConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SaddlePointConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for SaddlePointConfig
impl PartialEq for SaddlePointConfig
Source§fn eq(&self, other: &SaddlePointConfig) -> bool
fn eq(&self, other: &SaddlePointConfig) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SaddlePointConfig
impl Serialize for SaddlePointConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for SaddlePointConfig
Auto Trait Implementations§
impl Freeze for SaddlePointConfig
impl RefUnwindSafe for SaddlePointConfig
impl Send for SaddlePointConfig
impl Sync for SaddlePointConfig
impl Unpin for SaddlePointConfig
impl UnsafeUnpin for SaddlePointConfig
impl UnwindSafe for SaddlePointConfig
Blanket Implementations§
impl<T> Any for Twhere
T: Any,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> CloneAny for T
impl<T> CloneAny for T
impl<T> CloneAnySend for T
impl<T> CloneAnySendSync for T
impl<T> CloneAnySync for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§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>
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>
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
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().