pub enum ConfigError {
TileSizeTooSmall(usize),
InvalidDecimation(usize),
InvalidUpscaleFactor(usize),
InvalidFillRatio {
min: f32,
max: f32,
},
InvalidEdgeLength(f64),
InvalidStructureTensorRadius(u8),
EdLinesIncompatibleWithErf,
EdLinesIncompatibleWithSoftDecode,
EdLinesUnsupportedWithDistortion,
ProfileParse(String),
}Expand description
Errors that can occur during detector configuration validation.
Variants§
TileSizeTooSmall(usize)
Threshold tile size must be >= 2.
InvalidDecimation(usize)
Decimation factor must be >= 1.
InvalidUpscaleFactor(usize)
Upscale factor must be >= 1.
InvalidFillRatio
Minimum fill ratio must be in [0.0, 1.0].
InvalidEdgeLength(f64)
Minimum edge length must be positive.
InvalidStructureTensorRadius(u8)
Structure tensor radius must stay within the supported kernel bound.
EdLinesIncompatibleWithErf
EdLines is geometrically incompatible with Erf corner refinement.
Erf performs an independent 1-D search per corner which destroys the planarity constraint established by the joint Gauss-Newton solver in the EdLines pipeline, degrading corner RMSE from ~0.17 px to ~0.59 px.
EdLinesIncompatibleWithSoftDecode
EdLines is statistically incompatible with Soft (LLR) decoding.
EdLines produces a large number of background line-segment candidates. Soft decoding forces deep probabilistic evaluation of all of them, causing a 10–22% precision collapse compared to Hard decoding.
EdLinesUnsupportedWithDistortion
EdLines is geometrically incompatible with distorted cameras.
EdLines’ Huber IRLS line fit, micro-ray parabola, and GN refinement all
assume Euclidean pixel geometry. A Brown-Conrady or Kannala-Brandt
intrinsic bends marker edges into curves, invalidating that assumption.
Use QuadExtractionMode::ContourRdp when passing distortion coefficients.
ProfileParse(String)
Profile JSON failed to parse (malformed syntax or unknown fields).
serde_json::Error is not Clone, so its Display form is captured
at construction time. The wrapping ConfigError stays Clone.
Trait Implementations§
Source§impl Clone for ConfigError
impl Clone for ConfigError
Source§fn clone(&self) -> ConfigError
fn clone(&self) -> ConfigError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConfigError
impl Debug for ConfigError
Source§impl Display for ConfigError
impl Display for ConfigError
Source§impl Error for ConfigError
impl Error for ConfigError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<ConfigError> for DetectorError
impl From<ConfigError> for DetectorError
Source§fn from(source: ConfigError) -> Self
fn from(source: ConfigError) -> Self
Auto Trait Implementations§
impl Freeze for ConfigError
impl RefUnwindSafe for ConfigError
impl Send for ConfigError
impl Sync for ConfigError
impl Unpin for ConfigError
impl UnsafeUnpin for ConfigError
impl UnwindSafe for ConfigError
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<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.