pub struct VisualOdometry {
pub intrinsics: IntrinsicMatrix,
pub ransac_threshold: f64,
pub max_ransac_iter: usize,
pub min_inliers: usize,
/* private fields */
}Expand description
Visual odometry: frame-to-frame motion estimation via tracked features.
Fields§
§intrinsics: IntrinsicMatrixCamera intrinsics.
ransac_threshold: f64RANSAC threshold in pixels for E-matrix estimation.
max_ransac_iter: usizeMaximum RANSAC iterations.
min_inliers: usizeMinimum inliers for a valid motion estimate.
Implementations§
Source§impl VisualOdometry
impl VisualOdometry
Sourcepub fn new(intrinsics: IntrinsicMatrix) -> Self
pub fn new(intrinsics: IntrinsicMatrix) -> Self
Create a new VO instance.
Sourcepub fn process_frame(
&mut self,
keypoints: &[[f64; 2]],
matches: &[(usize, usize)],
) -> Result<Option<Pose>>
pub fn process_frame( &mut self, keypoints: &[[f64; 2]], matches: &[(usize, usize)], ) -> Result<Option<Pose>>
Process a new frame, estimating relative motion from matches.
keypoints: 2D keypoints in the current frame.matches:(prev_idx, curr_idx)pairs.
Returns the estimated Pose of the current frame (or None on
the first frame / insufficient matches).
Sourcepub fn current_pose(&self) -> &Pose
pub fn current_pose(&self) -> &Pose
Get the current accumulated camera pose.
Auto Trait Implementations§
impl Freeze for VisualOdometry
impl RefUnwindSafe for VisualOdometry
impl Send for VisualOdometry
impl Sync for VisualOdometry
impl Unpin for VisualOdometry
impl UnsafeUnpin for VisualOdometry
impl UnwindSafe for VisualOdometry
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
Converts
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>
Converts
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
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.