[][src]Trait opencv::cudaoptflow::CUDA_NvidiaHWOpticalFlow

pub trait CUDA_NvidiaHWOpticalFlow: AlgorithmTrait {
    pub fn as_raw_CUDA_NvidiaHWOpticalFlow(&self) -> *const c_void;
pub fn as_raw_mut_CUDA_NvidiaHWOpticalFlow(&mut self) -> *mut c_void; pub fn calc(
        &mut self,
        input_image: &dyn ToInputArray,
        reference_image: &dyn ToInputArray,
        flow: &mut dyn ToInputOutputArray,
        stream: &mut Stream,
        hint: &dyn ToInputArray,
        cost: &mut dyn ToOutputArray
    ) -> Result<()> { ... }
pub fn collect_garbage(&mut self) -> Result<()> { ... }
pub fn get_grid_size(&self) -> Result<i32> { ... } }

Base Interface for optical flow algorithms using NVIDIA Optical Flow SDK.

Required methods

Loading content...

Provided methods

pub fn calc(
    &mut self,
    input_image: &dyn ToInputArray,
    reference_image: &dyn ToInputArray,
    flow: &mut dyn ToInputOutputArray,
    stream: &mut Stream,
    hint: &dyn ToInputArray,
    cost: &mut dyn ToOutputArray
) -> Result<()>
[src]

Calculates Optical Flow using NVIDIA Optical Flow SDK.

  • NVIDIA GPUs starting with Turing contain a dedicated hardware accelerator for computing optical flow vectors between pairs of images.
  • The optical flow hardware accelerator generates block-based optical flow vectors.
  • The size of the block depends on hardware in use, and can be queried using the function getGridSize().
  • The block-based flow vectors generated by the hardware can be converted to dense representation (i.e. per-pixel flow vectors) using upSampler() helper function, if needed.
  • The flow vectors are stored in CV_16SC2 format with x and y components of each flow vector in 16-bit signed fixed point representation S10.5.

Parameters

  • inputImage: Input image.
  • referenceImage: Reference image of the same size and the same type as input image.
  • flow: A buffer consisting of inputImage.Size() / getGridSize() flow vectors in CV_16SC2 format.
  • stream: It is highly recommended that CUDA streams for pre and post processing of optical flow vectors should be set once per session in create() function as a part of optical flow session creation. This parameter is left here for backward compatibility and may be removed in the future. Default value is NULL stream;
  • hint: Hint buffer if client provides external hints. Must have same size as flow buffer. Caller can provide flow vectors as hints for optical flow calculation.
  • cost: Cost buffer contains numbers indicating the confidence associated with each of the generated flow vectors. Higher the cost, lower the confidence. Cost buffer is of type CV_32SC1.

Note:

  • Client must use critical sections around each calc() function if calling it from multiple threads.

C++ default parameters

  • stream: Stream::Null()
  • hint: cv::noArray()
  • cost: cv::noArray()

pub fn collect_garbage(&mut self) -> Result<()>[src]

Releases all buffers, contexts and device pointers.

pub fn get_grid_size(&self) -> Result<i32>[src]

Returns grid size of output buffer as per the hardware's capability.

Loading content...

Implementors

Loading content...