| OpenCV 4.3.0 Open Source Computer Vision

Public Member Functions | List of all members
cv::cuda::NvidiaHWOpticalFlow Class Referenceabstract
CUDA-accelerated Computer Vision » Optical Flow

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

`#include <opencv2/cudaoptflow.hpp>`

Inheritance diagram for cv::cuda::NvidiaHWOpticalFlow:

## Public Member Functions
virtual void | calc (InputArray inputImage, InputArray referenceImage, InputOutputArray flow, Stream &stream=Stream::Null(), InputArray hint=cv::noArray(), OutputArray cost=cv::noArray())=0
| Calculates Optical Flow using NVIDIA Optical Flow SDK. More...
virtual void | collectGarbage ()=0
| Releases all buffers, contexts and device pointers. More...
virtual int | getGridSize () const =0
| Returns grid size of output buffer as per the hardware's capability. More...
Public Member Functions inherited from cv::Algorithm
| Algorithm ()
virtual | ~Algorithm ()
virtual void | clear ()
| Clears the algorithm state. More...
virtual bool | empty () const
| Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
virtual String | getDefaultName () const
virtual void | read (const FileNode &fn)
| Reads algorithm parameters from a file storage. More...
virtual void | save (const String &filename) const
virtual void | write (FileStorage &fs) const
| Stores algorithm parameters in a file storage. More...
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const
| simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...

## Additional Inherited Members
Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tp > | load (const String &filename, const String &objname=String())
| Loads algorithm from the file. More...
template<typename _Tp >
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String())
| Loads algorithm from a String. More...
template<typename _Tp >
static Ptr< _Tp > | read (const FileNode &fn)
| Reads algorithm from the file node. More...
Protected Member Functions inherited from cv::Algorithm
void | writeFormat (FileStorage &fs) const

## Detailed Description

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

## Member Function Documentation

## ◆ calc()

virtual void cv::cuda::NvidiaHWOpticalFlow::calc | ( | InputArray | inputImage,
|  | InputArray | referenceImage,
|  | InputOutputArray | flow,
|  | Stream & | stream = `Stream::Null()`,
|  | InputArray | hint = `cv::noArray()`,
|  | OutputArray | cost = `cv::noArray()`
| ) |  |
| pure virtual

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 | Stream for the asynchronous version.
  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.

## ◆ collectGarbage()

virtual void cv::cuda::NvidiaHWOpticalFlow::collectGarbage | ( |  | ) |
| pure virtual

Releases all buffers, contexts and device pointers.

## ◆ getGridSize()

virtual int cv::cuda::NvidiaHWOpticalFlow::getGridSize | ( |  | ) | const
| pure virtual

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

The documentation for this class was generated from the following file:

- opencv2/cudaoptflow.hpp