/// <summary>
/// Computes flow for every pixel of the first input image using Horn & Schunck algorithm
/// </summary>
/// <param name="prev">First image, 8-bit, single-channel</param>
/// <param name="curr">Second image, 8-bit, single-channel</param>
/// <param name="usePrevious">Uses previous (input) velocity field</param>
/// <param name="velx">Horizontal component of the optical flow of the same size as input images, 32-bit floating-point, single-channel</param>
/// <param name="vely">Vertical component of the optical flow of the same size as input images, 32-bit floating-point, single-channel</param>
/// <param name="lambda">Lagrangian multiplier</param>
/// <param name="criteria">Criteria of termination of velocity computing</param>
public static void HS(
Image <Gray, Byte> prev,
Image <Gray, Byte> curr,
bool usePrevious,
Image <Gray, Single> velx,
Image <Gray, Single> vely,
double lambda,
MCvTermCriteria criteria)
{
CvInvoke.cvCalcOpticalFlowHS(prev.Ptr, curr.Ptr, usePrevious, velx.Ptr, vely.Ptr, lambda, criteria);
}