pub struct InnerFitConfig {
pub min_points: usize,
pub min_inlier_ratio: f32,
pub max_rms_residual: f64,
pub max_center_shift_px: f64,
pub max_ratio_abs_error: f64,
pub local_peak_halfwidth_idx: usize,
pub ransac: RansacConfig,
pub miss_confidence_factor: f32,
pub max_angular_gap_rad: f64,
pub require_inner_fit: bool,
}Expand description
Configuration for robust inner ellipse fitting from outer-fit hints.
Fields§
§min_points: usizeMinimum number of sampled points required to attempt a fit.
min_inlier_ratio: f32Minimum accepted inlier ratio when RANSAC is used.
max_rms_residual: f64Maximum accepted RMS Sampson residual (px) of the fitted inner ellipse.
max_center_shift_px: f64Maximum allowed center shift from outer to inner fit center (px).
max_ratio_abs_error: f64Maximum allowed absolute error in recovered scale ratio vs radial hint.
local_peak_halfwidth_idx: usizeLocal half-width (in radius-sample indices) around the radial hint.
ransac: RansacConfigRANSAC configuration for robust inner ellipse fitting.
miss_confidence_factor: f32Confidence multiplier applied when inner ellipse fit fails or is absent.
Inner fit failure is a reliable signal of poor image quality (heavy blur, distortion, or edge contamination). Setting this below 1.0 discounts the decode confidence when the inner ring cannot be fitted, making true markers in clear regions easier to separate from false detections.
Default: 0.7 (30 % confidence reduction on inner-fit miss).
max_angular_gap_rad: f64Maximum allowed angular gap (radians) between consecutive inner edge points. Fits where the largest gap exceeds this are rejected.
Default: π/2 (90 degrees).
require_inner_fit: boolWhen true, markers are hard-rejected (not just penalized) if the inner ellipse cannot be fitted. Requires two good ellipses per marker.
Default: false (backward-compatible).
Trait Implementations§
Source§impl Clone for InnerFitConfig
impl Clone for InnerFitConfig
Source§fn clone(&self) -> InnerFitConfig
fn clone(&self) -> InnerFitConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InnerFitConfig
impl Debug for InnerFitConfig
Source§impl Default for InnerFitConfig
impl Default for InnerFitConfig
Source§impl<'de> Deserialize<'de> for InnerFitConfigwhere
InnerFitConfig: Default,
impl<'de> Deserialize<'de> for InnerFitConfigwhere
InnerFitConfig: 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 InnerFitConfig
impl RefUnwindSafe for InnerFitConfig
impl Send for InnerFitConfig
impl Sync for InnerFitConfig
impl Unpin for InnerFitConfig
impl UnsafeUnpin for InnerFitConfig
impl UnwindSafe for InnerFitConfig
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.