pub struct FitMetrics {Show 14 fields
pub n_angles_total: usize,
pub n_angles_with_both_edges: usize,
pub n_points_outer: usize,
pub n_points_inner: usize,
pub ransac_inlier_ratio_outer: Option<f32>,
pub ransac_inlier_ratio_inner: Option<f32>,
pub rms_residual_outer: Option<f64>,
pub rms_residual_inner: Option<f64>,
pub max_angular_gap_outer: Option<f64>,
pub max_angular_gap_inner: Option<f64>,
pub inner_fit_status: Option<InnerFitStatus>,
pub inner_fit_reason: Option<InnerFitReason>,
pub neighbor_radius_ratio: Option<f32>,
pub inner_theta_consistency: Option<f32>,
}Expand description
Fit quality metrics for a detected marker.
Reports the edge sampling and ellipse fit quality. High RANSAC inlier ratios (> 0.8) and low RMS Sampson residuals (< 0.5 px) indicate a precise ellipse fit.
Fields§
§n_angles_total: usizeTotal number of radial rays cast.
n_angles_with_both_edges: usizeNumber of rays where both inner and outer ring edges were found.
n_points_outer: usizeNumber of outer edge points used for ellipse fit.
n_points_inner: usizeNumber of inner edge points used for ellipse fit.
ransac_inlier_ratio_outer: Option<f32>RANSAC inlier ratio for outer ellipse fit.
ransac_inlier_ratio_inner: Option<f32>RANSAC inlier ratio for inner ellipse fit.
rms_residual_outer: Option<f64>RMS Sampson residual for outer ellipse fit.
rms_residual_inner: Option<f64>RMS Sampson residual for inner ellipse fit.
max_angular_gap_outer: Option<f64>Maximum angular gap (radians) between consecutive outer edge points.
max_angular_gap_inner: Option<f64>Maximum angular gap (radians) between consecutive inner edge points.
inner_fit_status: Option<InnerFitStatus>Inner fit outcome: "ok", "rejected", or "failed". Absent when fit
succeeded without issue.
inner_fit_reason: Option<InnerFitReason>Inner fit rejection reason code. Present only when inner_fit_status is
"rejected" or "failed".
neighbor_radius_ratio: Option<f32>Ratio of this marker’s outer radius to the median outer radius of its k nearest decoded neighbors. Values well below 1.0 (< 0.75) indicate a potential inner-as-outer substitution. Populated in the finalization stage.
inner_theta_consistency: Option<f32>Theta consistency score from the inner estimate stage. Fraction of theta samples that agree on the inner edge location. Present when estimation ran, including when it failed the quality gate.
Trait Implementations§
Source§impl Clone for FitMetrics
impl Clone for FitMetrics
Source§fn clone(&self) -> FitMetrics
fn clone(&self) -> FitMetrics
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FitMetrics
impl Debug for FitMetrics
Source§impl Default for FitMetrics
impl Default for FitMetrics
Source§fn default() -> FitMetrics
fn default() -> FitMetrics
Source§impl<'de> Deserialize<'de> for FitMetrics
impl<'de> Deserialize<'de> for FitMetrics
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 FitMetrics
impl RefUnwindSafe for FitMetrics
impl Send for FitMetrics
impl Sync for FitMetrics
impl Unpin for FitMetrics
impl UnsafeUnpin for FitMetrics
impl UnwindSafe for FitMetrics
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.