Base Interface for optical flow algorithms using NVIDIA Optical Flow SDK.
More...
#include <opencv2/cudaoptflow.hpp>
Base Interface for optical flow algorithms using NVIDIA Optical Flow SDK.
◆ calc()
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: