pub struct SparseRLOFOpticalFlow { /* private fields */ }
Expand description

Class used for calculation sparse optical flow and feature tracking with robust local optical flow (RLOF) algorithms.

The RLOF is a fast local optical flow approach described in Senst2012 Senst2013 Senst2014 and Senst2016 similar to the pyramidal iterative Lucas-Kanade method as proposed by Bouguet00. More details and experiments can be found in the following thesis Senst2019. The implementation is derived from optflow::calcOpticalFlowPyrLK().

For the RLOF configuration see optflow::RLOFOpticalFlowParameter for further details. Parameters have been described in Senst2012, Senst2013, Senst2014 and Senst2016.

Note: SIMD parallelization is only available when compiling with SSE4.1.

See also

optflow::calcOpticalFlowSparseRLOF(), optflow::RLOFOpticalFlowParameter

Implementations§

source§

impl SparseRLOFOpticalFlow

source

pub fn create( rlof_param: Ptr<RLOFOpticalFlowParameter>, forward_backward_threshold: f32 ) -> Result<Ptr<SparseRLOFOpticalFlow>>

Creates instance of SparseRLOFOpticalFlow

Parameters
  • rlofParam: see setRLOFOpticalFlowParameter
  • forwardBackwardThreshold: see setForwardBackward
C++ default parameters
  • rlof_param: Ptr()
  • forward_backward_threshold: 1.f
source

pub fn create_def() -> Result<Ptr<SparseRLOFOpticalFlow>>

Creates instance of SparseRLOFOpticalFlow

Parameters
  • rlofParam: see setRLOFOpticalFlowParameter
  • forwardBackwardThreshold: see setForwardBackward
Note

This alternative version of SparseRLOFOpticalFlow::create function uses the following default values for its arguments:

  • rlof_param: Ptr()
  • forward_backward_threshold: 1.f

Trait Implementations§

source§

impl AlgorithmTrait for SparseRLOFOpticalFlow

source§

fn as_raw_mut_Algorithm(&mut self) -> *mut c_void

source§

fn clear(&mut self) -> Result<()>

Clears the algorithm state
source§

fn read(&mut self, fn_: &FileNode) -> Result<()>

Reads algorithm parameters from a file storage
source§

impl AlgorithmTraitConst for SparseRLOFOpticalFlow

source§

fn as_raw_Algorithm(&self) -> *const c_void

source§

fn write(&self, fs: &mut FileStorage) -> Result<()>

Stores algorithm parameters in a file storage
source§

fn write_1(&self, fs: &mut FileStorage, name: &str) -> Result<()>

Stores algorithm parameters in a file storage Read more
source§

fn write_with_name(&self, fs: &Ptr<FileStorage>, name: &str) -> Result<()>

@deprecated Read more
source§

fn write_with_name_def(&self, fs: &Ptr<FileStorage>) -> Result<()>

👎Deprecated:

Note

Deprecated: ## Note This alternative version of AlgorithmTraitConst::write_with_name function uses the following default values for its arguments: Read more
source§

fn empty(&self) -> Result<bool>

Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read
source§

fn save(&self, filename: &str) -> Result<()>

Saves the algorithm to a file. In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).
source§

fn get_default_name(&self) -> Result<String>

Returns the algorithm string identifier. This string is used as top level xml/yml node tag when the object is saved to a file or string.
source§

impl Boxed for SparseRLOFOpticalFlow

source§

unsafe fn from_raw(ptr: *mut c_void) -> Self

Wrap the specified raw pointer Read more
source§

fn into_raw(self) -> *mut c_void

Return an the underlying raw pointer while consuming this wrapper. Read more
source§

fn as_raw(&self) -> *const c_void

Return the underlying raw pointer. Read more
source§

fn as_raw_mut(&mut self) -> *mut c_void

Return the underlying mutable raw pointer Read more
source§

impl Debug for SparseRLOFOpticalFlow

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for SparseRLOFOpticalFlow

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl From<SparseRLOFOpticalFlow> for Algorithm

source§

fn from(s: SparseRLOFOpticalFlow) -> Self

Converts to this type from the input type.
source§

impl From<SparseRLOFOpticalFlow> for SparseOpticalFlow

source§

fn from(s: SparseRLOFOpticalFlow) -> Self

Converts to this type from the input type.
source§

impl SparseOpticalFlowTrait for SparseRLOFOpticalFlow

source§

fn as_raw_mut_SparseOpticalFlow(&mut self) -> *mut c_void

source§

fn calc( &mut self, prev_img: &impl ToInputArray, next_img: &impl ToInputArray, prev_pts: &impl ToInputArray, next_pts: &mut impl ToInputOutputArray, status: &mut impl ToOutputArray, err: &mut impl ToOutputArray ) -> Result<()>

Calculates a sparse optical flow. Read more
source§

fn calc_def( &mut self, prev_img: &impl ToInputArray, next_img: &impl ToInputArray, prev_pts: &impl ToInputArray, next_pts: &mut impl ToInputOutputArray, status: &mut impl ToOutputArray ) -> Result<()>

Calculates a sparse optical flow. Read more
source§

impl SparseOpticalFlowTraitConst for SparseRLOFOpticalFlow

source§

impl SparseRLOFOpticalFlowTrait for SparseRLOFOpticalFlow

source§

fn as_raw_mut_SparseRLOFOpticalFlow(&mut self) -> *mut c_void

source§

fn set_rlof_optical_flow_parameter( &mut self, val: Ptr<RLOFOpticalFlowParameter> ) -> Result<()>

@copydoc DenseRLOFOpticalFlow::setRLOFOpticalFlowParameter
source§

fn set_forward_backward(&mut self, val: f32) -> Result<()>

Threshold for the forward backward confidence check For each feature point a motion vector inline formula is computed. * If the forward backward error block formula * is larger than threshold given by this function then the status will not be used by the following * vector field interpolation. inline formula denotes the backward flow. Note, the forward backward test * will only be applied if the threshold > 0. This may results into a doubled runtime for the motion estimation. * see also: setForwardBackward Read more
source§

impl SparseRLOFOpticalFlowTraitConst for SparseRLOFOpticalFlow

source§

fn as_raw_SparseRLOFOpticalFlow(&self) -> *const c_void

source§

fn get_rlof_optical_flow_parameter( &self ) -> Result<Ptr<RLOFOpticalFlowParameter>>

@copydoc DenseRLOFOpticalFlow::setRLOFOpticalFlowParameter Read more
source§

fn get_forward_backward(&self) -> Result<f32>

Threshold for the forward backward confidence check For each feature point a motion vector inline formula is computed. * If the forward backward error block formula * is larger than threshold given by this function then the status will not be used by the following * vector field interpolation. inline formula denotes the backward flow. Note, the forward backward test * will only be applied if the threshold > 0. This may results into a doubled runtime for the motion estimation. * setForwardBackward Read more
source§

impl Send for SparseRLOFOpticalFlow

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.