| OpenCV 5.0.0alpha Open Source Computer Vision

Loading...
Searching...
No Matches
Functions
G-API Video processing functionality

## Detailed Description

## Functions
GMat | cv::gapi::BackgroundSubtractor (const GMat &src, const cv::gapi::video::BackgroundSubtractorParams &bsParams)
| Gaussian Mixture-based or K-nearest neighbours-based Background/Foreground Segmentation Algorithm. The operation generates a foreground mask.
std::tuple< GArray< GMat >, GScalar > | cv::gapi::buildOpticalFlowPyramid (const GMat &img, const Size &winSize, const GScalar &maxLevel, bool withDerivatives=true, int pyrBorder=BORDER_REFLECT_101, int derivBorder=BORDER_CONSTANT, bool tryReuseInputImage=true)
| Constructs the image pyramid which can be passed to calcOpticalFlowPyrLK.
std::tuple< GArray< Point2f >, GArray< uchar >, GArray< float > > | cv::gapi::calcOpticalFlowPyrLK (const GArray< GMat > &prevPyr, const GArray< GMat > &nextPyr, const GArray< Point2f > &prevPts, const GArray< Point2f > &predPts, const Size &winSize=Size(21, 21), const GScalar &maxLevel=3, const TermCriteria &criteria=TermCriteria(TermCriteria::COUNT|TermCriteria::EPS, 30, 0.01), int flags=0, double minEigThresh=1e-4)
std::tuple< GArray< Point2f >, GArray< uchar >, GArray< float > > | cv::gapi::calcOpticalFlowPyrLK (const GMat &prevImg, const GMat &nextImg, const GArray< Point2f > &prevPts, const GArray< Point2f > &predPts, const Size &winSize=Size(21, 21), const GScalar &maxLevel=3, const TermCriteria &criteria=TermCriteria(TermCriteria::COUNT|TermCriteria::EPS, 30, 0.01), int flags=0, double minEigThresh=1e-4)
| Calculates an optical flow for a sparse feature set using the iterative Lucas-Kanade method with pyramids.
GMat | cv::gapi::KalmanFilter (const GMat &measurement, const GOpaque< bool > &haveMeasurement, const cv::gapi::KalmanParams &kfParams)
GMat | cv::gapi::KalmanFilter (const GMat &measurement, const GOpaque< bool > &haveMeasurement, const GMat &control, const cv::gapi::KalmanParams &kfParams)
| Standard Kalman filter algorithm http://en.wikipedia.org/wiki/Kalman_filter.

## Function Documentation

## ◆ BackgroundSubtractor()

GMat cv::gapi::BackgroundSubtractor | ( | const GMat & | src,
|  | const cv::gapi::video::BackgroundSubtractorParams & | bsParams )

`#include <opencv2/gapi/video.hpp>`

Gaussian Mixture-based or K-nearest neighbours-based Background/Foreground Segmentation Algorithm. The operation generates a foreground mask.

Returns
  Output image is foreground mask, i.e. 8-bit unsigned 1-channel (binary) matrix CV_8UC1.

Note
  Functional textual ID is "org.opencv.video.BackgroundSubtractor"

Parameters

  src | input image: Floating point frame is used without scaling and should be in range [0,255].
  bsParams | Set of initialization parameters for Background Subtractor kernel.

## ◆ buildOpticalFlowPyramid()

std::tuple< GArray< GMat >, GScalar > cv::gapi::buildOpticalFlowPyramid | ( | const GMat & | img,
|  | const Size & | winSize,
|  | const GScalar & | maxLevel,
|  | bool | withDerivatives = true,
|  | int | pyrBorder = BORDER_REFLECT_101,
|  | int | derivBorder = BORDER_CONSTANT,
|  | bool | tryReuseInputImage = true )

`#include <opencv2/gapi/video.hpp>`

Constructs the image pyramid which can be passed to calcOpticalFlowPyrLK.

Note
  Function textual ID is "org.opencv.video.buildOpticalFlowPyramid"

Parameters

  img | 8-bit input image.
  winSize | window size of optical flow algorithm. Must be not less than winSize argument of calcOpticalFlowPyrLK. It is needed to calculate required padding for pyramid levels.
  maxLevel | 0-based maximal pyramid level number.
  withDerivatives | set to precompute gradients for the every pyramid level. If pyramid is constructed without the gradients then calcOpticalFlowPyrLK will calculate them internally.
  pyrBorder | the border mode for pyramid layers.
  derivBorder | the border mode for gradients.
  tryReuseInputImage | put ROI of input image into the pyramid if possible. You can pass false to force data copying.

Returns
  - output pyramid.
  - number of levels in constructed pyramid. Can be less than maxLevel.

## ◆ calcOpticalFlowPyrLK() [1/2]

std::tuple< GArray< Point2f >, GArray< uchar >, GArray< float > > cv::gapi::calcOpticalFlowPyrLK | ( | const GArray< GMat > & | prevPyr,
|  | const GArray< GMat > & | nextPyr,
|  | const GArray< Point2f > & | prevPts,
|  | const GArray< Point2f > & | predPts,
|  | const Size & | winSize = Size(21, 21),
|  | const GScalar & | maxLevel = 3,
|  | const TermCriteria & | criteria = TermCriteria(TermCriteria::COUNT|TermCriteria::EPS, 30, 0.01),
|  | int | flags = 0,
|  | double | minEigThresh = 1e-4 )

`#include <opencv2/gapi/video.hpp>`

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Note
  Function textual ID is "org.opencv.video.calcOpticalFlowPyrLKForPyr"

## ◆ calcOpticalFlowPyrLK() [2/2]

std::tuple< GArray< Point2f >, GArray< uchar >, GArray< float > > cv::gapi::calcOpticalFlowPyrLK | ( | const GMat & | prevImg,
|  | const GMat & | nextImg,
|  | const GArray< Point2f > & | prevPts,
|  | const GArray< Point2f > & | predPts,
|  | const Size & | winSize = Size(21, 21),
|  | const GScalar & | maxLevel = 3,
|  | const TermCriteria & | criteria = TermCriteria(TermCriteria::COUNT|TermCriteria::EPS, 30, 0.01),
|  | int | flags = 0,
|  | double | minEigThresh = 1e-4 )

`#include <opencv2/gapi/video.hpp>`

Calculates an optical flow for a sparse feature set using the iterative Lucas-Kanade method with pyramids.

See [36] .

Note
  Function textual ID is "org.opencv.video.calcOpticalFlowPyrLK"

Parameters

  prevImg | first 8-bit input image (GMat) or pyramid (GArray<GMat>) constructed by buildOpticalFlowPyramid.
  nextImg | second input image (GMat) or pyramid (GArray<GMat>) of the same size and the same type as prevImg.
  prevPts | GArray of 2D points for which the flow needs to be found; point coordinates must be single-precision floating-point numbers.
  predPts | GArray of 2D points initial for the flow search; make sense only when OPTFLOW_USE_INITIAL_FLOW flag is passed; in that case the vector must have the same size as in the input.
  winSize | size of the search window at each pyramid level.
  maxLevel | 0-based maximal pyramid level number; if set to 0, pyramids are not used (single level), if set to 1, two levels are used, and so on; if pyramids are passed to input then algorithm will use as many levels as pyramids have but no more than maxLevel.
  criteria | parameter, specifying the termination criteria of the iterative search algorithm (after the specified maximum number of iterations criteria.maxCount or when the search window moves by less than criteria.epsilon).
  flags | operation flags: OPTFLOW_USE_INITIAL_FLOW uses initial estimations, stored in nextPts; if the flag is not set, then prevPts is copied to nextPts and is considered the initial estimate. OPTFLOW_LK_GET_MIN_EIGENVALS use minimum eigen values as an error measure (see minEigThreshold description); if the flag is not set, then L1 distance between patches around the original and a moved point, divided by number of pixels in a window, is used as a error measure.
  minEigThresh | the algorithm calculates the minimum eigen value of a 2x2 normal matrix of optical flow equations (this matrix is called a spatial gradient matrix in [36]), divided by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding feature is filtered out and its flow is not processed, so it allows to remove bad points and get a performance boost.

Returns
  - GArray of 2D points (with single-precision floating-point coordinates) containing the calculated new positions of input features in the second image.
  - status GArray (of unsigned chars); each element of the vector is set to 1 if the flow for the corresponding features has been found, otherwise, it is set to 0.
  - GArray of errors (doubles); each element of the vector is set to an error for the corresponding feature, type of the error measure can be set in flags parameter; if the flow wasn't found then the error is not defined (use the status parameter to find such cases).

## ◆ KalmanFilter() [1/2]

GMat cv::gapi::KalmanFilter | ( | const GMat & | measurement,
|  | const GOpaque< bool > & | haveMeasurement,
|  | const cv::gapi::KalmanParams & | kfParams )

`#include <opencv2/gapi/video.hpp>`

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. The case of Standard Kalman filter algorithm when there is no control in a dynamic system. In this case the controlMatrix is empty and control vector is absent.

Note
  Function textual ID is "org.opencv.video.KalmanFilterNoControl"

Parameters

  measurement | input matrix: 32-bit or 64-bit float 1-channel matrix containing measurements.
  haveMeasurement | dynamic input flag that indicates whether we get measurements at a particular iteration.
  kfParams | Set of initialization parameters for Kalman filter kernel.

Returns
  Output matrix is predicted or corrected state. They can be 32-bit or 64-bit float 1-channel matrix CV_32FC1 or CV_64FC1.

See also
  cv::KalmanFilter

## ◆ KalmanFilter() [2/2]

GMat cv::gapi::KalmanFilter | ( | const GMat & | measurement,
|  | const GOpaque< bool > & | haveMeasurement,
|  | const GMat & | control,
|  | const cv::gapi::KalmanParams & | kfParams )

`#include <opencv2/gapi/video.hpp>`

Standard Kalman filter algorithm http://en.wikipedia.org/wiki/Kalman_filter.

Note
  Functional textual ID is "org.opencv.video.KalmanFilter"

Parameters

  measurement | input matrix: 32-bit or 64-bit float 1-channel matrix containing measurements.
  haveMeasurement | dynamic input flag that indicates whether we get measurements at a particular iteration .
  control | input matrix: 32-bit or 64-bit float 1-channel matrix contains control data for changing dynamic system.
  kfParams | Set of initialization parameters for Kalman filter kernel.

Returns
  Output matrix is predicted or corrected state. They can be 32-bit or 64-bit float 1-channel matrix CV_32FC1 or CV_64FC1.

If measurement matrix is given (haveMeasurements == true), corrected state will be returned which corresponds to the pipeline cv::KalmanFilter::predict(control) -> cv::KalmanFilter::correct(measurement). Otherwise, predicted state will be returned which corresponds to the call of cv::KalmanFilter::predict(control).

See also
  cv::KalmanFilter