Method CalcOpticalFlowFarneback
- Namespace
- OpenCvSharp
- Assembly
- OpenCvSharp.dll
CalcOpticalFlowFarneback(InputArray, InputArray, InputOutputArray, double, int, int, int, int, double, OpticalFlowFlags)
Computes a dense optical flow using the Gunnar Farneback's algorithm.
public static void CalcOpticalFlowFarneback(InputArray prev, InputArray next, InputOutputArray flow, double pyrScale, int levels, int winsize, int iterations, int polyN, double polySigma, OpticalFlowFlags flags)
Parameters
prevInputArrayfirst 8-bit single-channel input image.
nextInputArraysecond input image of the same size and the same type as prev.
flowInputOutputArraycomputed flow image that has the same size as prev and type CV_32FC2.
pyrScaledoubleparameter, specifying the image scale (<1) to build pyramids for each image; pyrScale=0.5 means a classical pyramid, where each next layer is twice smaller than the previous one.
levelsintnumber of pyramid layers including the initial image; levels=1 means that no extra layers are created and only the original images are used.
winsizeintaveraging window size; larger values increase the algorithm robustness to image noise and give more chances for fast motion detection, but yield more blurred motion field.
iterationsintnumber of iterations the algorithm does at each pyramid level.
polyNintsize of the pixel neighborhood used to find polynomial expansion in each pixel; larger values mean that the image will be approximated with smoother surfaces, yielding more robust algorithm and more blurred motion field, typically poly_n =5 or 7.
polySigmadoublestandard deviation of the Gaussian that is used to smooth derivatives used as a basis for the polynomial expansion; for polyN=5, you can set polySigma=1.1, for polyN=7, a good value would be polySigma=1.5.
flagsOpticalFlowFlagsoperation flags that can be a combination of OPTFLOW_USE_INITIAL_FLOW and/or OPTFLOW_FARNEBACK_GAUSSIAN