pub struct Detector { /* private fields */ }Expand description
The primary entry point for the Locus perception library.
Detector encapsulates the entire detection pipeline. For concurrent
multi-frame detection, construct with a max_concurrent_frames > 1 via
DetectorBuilder::with_max_concurrent_frames and call
Detector::detect_concurrent.
Implementations§
Source§impl Detector
impl Detector
Sourcepub fn builder() -> DetectorBuilder
pub fn builder() -> DetectorBuilder
Returns a builder to configure a new detector.
Sourcepub fn with_config(config: DetectorConfig) -> Self
pub fn with_config(config: DetectorConfig) -> Self
Create a detector with custom pipeline configuration.
Sourcepub fn state(&self) -> &FrameContext
pub fn state(&self) -> &FrameContext
Access the internal frame context (for advanced inspection or FFI).
Sourcepub fn engine(&self) -> &LocusEngine
pub fn engine(&self) -> &LocusEngine
Access the shared engine (for advanced FFI use only).
Sourcepub fn detect(
&mut self,
img: &ImageView<'_>,
intrinsics: Option<&CameraIntrinsics>,
tag_size: Option<f64>,
pose_mode: PoseEstimationMode,
debug_telemetry: bool,
) -> Result<DetectionBatchView<'_>, DetectorError>
pub fn detect( &mut self, img: &ImageView<'_>, intrinsics: Option<&CameraIntrinsics>, tag_size: Option<f64>, pose_mode: PoseEstimationMode, debug_telemetry: bool, ) -> Result<DetectionBatchView<'_>, DetectorError>
Detect tags in the provided image.
This method is the main execution pipeline.
§Errors
Returns DetectorError if the input image cannot be decimated, upscaled,
or if an intermediate image view cannot be constructed.
Sourcepub fn detect_concurrent(
&self,
frames: &[ImageView<'_>],
intrinsics: Option<&CameraIntrinsics>,
tag_size: Option<f64>,
pose_mode: PoseEstimationMode,
) -> Vec<Result<Vec<Detection>, DetectorError>>
pub fn detect_concurrent( &self, frames: &[ImageView<'_>], intrinsics: Option<&CameraIntrinsics>, tag_size: Option<f64>, pose_mode: PoseEstimationMode, ) -> Vec<Result<Vec<Detection>, DetectorError>>
Detect tags in multiple frames concurrently using Rayon.
Delegates to the internal LocusEngine pool. The pool is sized to
max_concurrent_frames at construction time (see
DetectorBuilder::with_max_concurrent_frames). Telemetry is not
available via this method.
Sourcepub fn set_families(&mut self, families: &[TagFamily])
pub fn set_families(&mut self, families: &[TagFamily])
Clear all decoders and set new ones based on tag families.
Sourcepub fn config(&self) -> DetectorConfig
pub fn config(&self) -> DetectorConfig
Get the current detector configuration.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Detector
impl !RefUnwindSafe for Detector
impl Send for Detector
impl !Sync for Detector
impl Unpin for Detector
impl UnsafeUnpin for Detector
impl !UnwindSafe for Detector
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> 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.