pub struct FeatureExtractor { /* private fields */ }Expand description
Feature extractor: backend + store writes.
Implementations§
Source§impl FeatureExtractor
impl FeatureExtractor
Sourcepub fn with_backend(backend: Arc<dyn SiftEngine>) -> Self
pub fn with_backend(backend: Arc<dyn SiftEngine>) -> Self
Creates one with the given SIFT backend (e.g. GPU).
Sourcepub fn backend(&self) -> &dyn SiftEngine
pub fn backend(&self) -> &dyn SiftEngine
SIFT backend in use.
Sourcepub fn extract_files(
&self,
store: &FeatureStore,
root: &Path,
names: &[String],
opts: &ExtractionOptions,
) -> Result<Vec<ImageReport>>
pub fn extract_files( &self, store: &FeatureStore, root: &Path, names: &[String], opts: &ExtractionOptions, ) -> Result<Vec<ImageReport>>
Reads a file list (names relative to root) and adds them to the store. Names are processed in lexicographic order.
With Existing(N), fails immediately if camera N does not exist. Per-image failures are recorded in the report.
Sourcepub fn extract_ordered(
&self,
store: &FeatureStore,
root: &Path,
items: &[(String, CameraMode)],
opts: &ExtractionOptions,
) -> Result<Vec<ImageReport>>
pub fn extract_ordered( &self, store: &FeatureStore, root: &Path, items: &[(String, CameraMode)], opts: &ExtractionOptions, ) -> Result<Vec<ImageReport>>
Like FeatureExtractor::extract_files for images that each have their own camera mode (e.g. one position of a
multi-camera rig: Existing(camera) per image), in the given order instead of sorted order: image rows are
issued in that order (deterministic ids), then decoding and SIFT of all images run in parallel. Names are
trimmed; empty and repeated names are dropped (the first one counts). Reports come back in the given order.
Sourcepub fn extract_inputs(
&self,
store: &FeatureStore,
inputs: Vec<ImageSource>,
opts: &ExtractionOptions,
) -> Result<Vec<ImageReport>>
pub fn extract_inputs( &self, store: &FeatureStore, inputs: Vec<ImageSource>, opts: &ExtractionOptions, ) -> Result<Vec<ImageReport>>
Adds decoded images to the store (for per-position calls). Issues ids in lexicographic name order.
Trait Implementations§
Source§impl Clone for FeatureExtractor
impl Clone for FeatureExtractor
Auto Trait Implementations§
impl !RefUnwindSafe for FeatureExtractor
impl !UnwindSafe for FeatureExtractor
impl Freeze for FeatureExtractor
impl Send for FeatureExtractor
impl Sync for FeatureExtractor
impl Unpin for FeatureExtractor
impl UnsafeUnpin for FeatureExtractor
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> 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.