$darkmode
![]() |
OpenCV 4.11.0
Open Source Computer Vision
|
Base Interface for optical flow algorithms using NVIDIA Optical Flow SDK. More...
#include <opencv2/cudaoptflow.hpp>
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... | |
![]() | |
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 |
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
virtual void | write (FileStorage &fs) const |
Stores algorithm parameters in a file storage. More... | |
void | write (FileStorage &fs, const String &name) const |
Additional Inherited Members | |
![]() | |
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... | |
![]() | |
void | writeFormat (FileStorage &fs) const |
Base Interface for optical flow algorithms using NVIDIA Optical Flow SDK.
|
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.
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. |
|
pure virtual |
Releases all buffers, contexts and device pointers.
|
pure virtual |
Returns grid size of output buffer as per the hardware's capability.