pub struct OuterEstimationConfig {
pub search_halfwidth_px: f32,
pub radial_samples: usize,
pub aggregator: AngularAggregator,
pub grad_polarity: GradPolarity,
pub min_theta_coverage: f32,
pub min_theta_consistency: f32,
pub allow_two_hypotheses: bool,
pub second_peak_min_rel: f32,
pub refine_halfwidth_px: f32,
}Expand description
Configuration for outer-radius estimation around a center prior.
The number of theta samples (rays) is not stored here; it is passed
explicitly to estimate_outer_from_prior_with_mapper so the caller can
synchronise it with the edge-sampling resolution without a silent override.
Set crate::EdgeSampleConfig::n_rays to control angular density for both stages.
Fields§
§search_halfwidth_px: f32Search half-width around the expected outer radius, in pixels.
radial_samples: usizeNumber of radial samples used to build the aggregated response.
Same convention as crate::MarkerSpec::radial_samples, calibrated
independently for the outer estimation stage.
aggregator: AngularAggregatorAggregation method across theta.
Same convention as crate::MarkerSpec::aggregator, applied to the outer
radial profile.
grad_polarity: GradPolarityExpected polarity of dI/dr at the outer edge.
min_theta_coverage: f32Minimum fraction of theta samples required for an estimate.
Same convention as crate::MarkerSpec::min_theta_coverage, calibrated
independently for the outer estimation stage.
min_theta_consistency: f32Minimum fraction of theta samples that must agree with the selected peak.
Same convention as crate::MarkerSpec::min_theta_consistency; the outer
estimator uses a stricter default (0.35) than the inner estimator (0.25)
because the outer edge is anchored to a scale prior.
allow_two_hypotheses: boolIf set, emit up to two hypotheses (best + runner-up) when runner-up is comparable.
second_peak_min_rel: f32Runner-up must be at least this fraction of the best peak strength.
refine_halfwidth_px: f32Per-theta local refinement half-width around the chosen radius.
Trait Implementations§
Source§impl Clone for OuterEstimationConfig
impl Clone for OuterEstimationConfig
Source§fn clone(&self) -> OuterEstimationConfig
fn clone(&self) -> OuterEstimationConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OuterEstimationConfig
impl Debug for OuterEstimationConfig
Source§impl Default for OuterEstimationConfig
impl Default for OuterEstimationConfig
Source§impl<'de> Deserialize<'de> for OuterEstimationConfigwhere
OuterEstimationConfig: Default,
impl<'de> Deserialize<'de> for OuterEstimationConfigwhere
OuterEstimationConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for OuterEstimationConfig
impl RefUnwindSafe for OuterEstimationConfig
impl Send for OuterEstimationConfig
impl Sync for OuterEstimationConfig
impl Unpin for OuterEstimationConfig
impl UnsafeUnpin for OuterEstimationConfig
impl UnwindSafe for OuterEstimationConfig
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<T> Pointable for T
impl<T> Pointable for T
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().Source§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.Source§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.