Class cv::cuda::NvidiaHWOpticalFlow#
Base Interface for optical flow algorithms using NVIDIA Optical Flow SDK.
#include <opencv2/cudaoptflow.hpp>Collaboration diagram for cv::cuda::NvidiaHWOpticalFlow:
Public Member Functions#
Public Member Functions inherited from cv::Algorithm
Return |
Name |
Description |
|---|---|---|
|
Clears the algorithm state. |
|
|
Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. |
|
|
Reads algorithm parameters from a file storage. |
|
|
||
|
|
|
|
Stores algorithm parameters in a file storage. |
|
|
Static Public Member Functions#
Static Public Member Functions inherited from cv::Algorithm
Return |
Name |
Description |
|---|---|---|
|
|
Loads algorithm from the file. |
|
|
Loads algorithm from a String. |
|
Reads algorithm from the file node. |
Additional Inherited Members#
Protected Member Functions inherited from cv::Algorithm
Return |
Name |
Description |
|---|---|---|
|
Detailed Description#
Base Interface for optical flow algorithms using NVIDIA Optical Flow SDK.
Member Function Documentation#
calc()#
void cv::cuda::NvidiaHWOpticalFlow::calc(
InputArray inputImage,
InputArray referenceImage,
InputOutputArray flow,
Stream & stream = Stream::Null(),
InputArray hint = cv::noArray(),
OutputArray cost = cv::noArray() )
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.
Note
Client must use critical sections around each calc() function if calling it from multiple threads.
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.
collectGarbage()#
void cv::cuda::NvidiaHWOpticalFlow::collectGarbage()
Releases all buffers, contexts and device pointers.
getGridSize()#
int cv::cuda::NvidiaHWOpticalFlow::getGridSize()
Returns grid size of output buffer as per the hardware’s capability.
Source file#
The documentation for this class was generated from the following file:
opencv2/cudaoptflow.hpp