Struct flydra_feature_detector::ImPtDetectCfg
source · pub struct ImPtDetectCfg {Show 14 fields
pub do_update_background_model: bool,
pub polarity: ContrastPolarity,
pub alpha: f32,
pub n_sigma: f32,
pub bright_non_gaussian_cutoff: u8,
pub bright_non_gaussian_replacement: u8,
pub bg_update_interval: u32,
pub diff_threshold: u8,
pub use_cmp: bool,
pub max_num_points: u16,
pub feature_window_size: u16,
pub clear_fraction: f32,
pub despeckle_threshold: u8,
pub valid_region: Shape,
}Expand description
Configuration parameters for feature detection.
These parameters are used in the 2D feature detection step. As such, they are used to parameterize how incoming images are analyzed so that relevant features are extracted and sent onwards for consideration as candidates for 3D tracking.
Fields§
§do_update_background_model: boolSwitch whether to continuously update the background model or not.
polarity: ContrastPolarityWhat kind of difference from the background model to detect.
alpha: f32How much to weight the update of the background model.
Valid range is 0.0 - 1.0. 0.0 means never update, 1.0 means complete replacement on every update.
n_sigma: f32Number of standard deviations a pixel must differ by to be detected.
Used when use_cmp is true. No effect when use_cmp is false. Valid
range is 0.0 - infinity. 0.0 means any difference is detected, large
value means only large deviations from mean are detected.
bright_non_gaussian_cutoff: u8(used when use_cmp is true)
bright_non_gaussian_replacement: u8(used when use_cmp is true)
bg_update_interval: u32How often to update the background model, in number of frames.
Valid range is 0-4294967295.
diff_threshold: u8This is the absolute difference required to detect a point. (For both
use_cmp true and false.)
use_cmp: boolIf use_cmp is true, use n_sigma based difference.
max_num_points: u16How many points above threshold can be detected.
feature_window_size: u16Half the width (and half the height) of the analysis region. In pixels.
clear_fraction: f32Reduces moment arm when detecting pixels.
The result of this computation or despecked_threshold is used,
whichever is larger. Fraction of the maximum difference value in pixel
intensity. Valid range is 0.0 - 1.0. 0.0 means the value is 0, 1.0 means
the value used is the maximum difference in pixel intensity between the
current image and the mean of the background model.
despeckle_threshold: u8Reduces moment arm when detecting pixels.
This value or the result of the clear_fraction computation is used,
whichever is larger. Intensity difference value. Value range is 0-255.
valid_region: ShapeThe shape of the reason over which detected points are checked.
Trait Implementations§
source§impl Clone for ImPtDetectCfg
impl Clone for ImPtDetectCfg
source§fn clone(&self) -> ImPtDetectCfg
fn clone(&self) -> ImPtDetectCfg
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for ImPtDetectCfg
impl Debug for ImPtDetectCfg
source§impl<'de> Deserialize<'de> for ImPtDetectCfg
impl<'de> Deserialize<'de> for ImPtDetectCfg
source§fn deserialize<__D>(
__deserializer: __D
) -> Result<ImPtDetectCfg, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<ImPtDetectCfg, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
source§impl PartialEq for ImPtDetectCfg
impl PartialEq for ImPtDetectCfg
source§fn eq(&self, other: &ImPtDetectCfg) -> bool
fn eq(&self, other: &ImPtDetectCfg) -> bool
self and other values to be equal, and is used
by ==.source§impl Serialize for ImPtDetectCfg
impl Serialize for ImPtDetectCfg
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 ImPtDetectCfg
Auto Trait Implementations§
impl Freeze for ImPtDetectCfg
impl RefUnwindSafe for ImPtDetectCfg
impl Send for ImPtDetectCfg
impl Sync for ImPtDetectCfg
impl Unpin for ImPtDetectCfg
impl UnwindSafe for ImPtDetectCfg
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
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§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.source§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.source§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.source§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.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§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 moresource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.