Calculates optical flow for overlapped blocks block_size.width * block_size.height pixels each, thus the velocity fields are smaller than the original images. For every block in prev the functions tries to find a similar block in curr in some neighborhood of the original block or shifted by (velx(x0,y0),vely(x0,y0)) block as has been calculated by previous function call (if use_previous)

Namespace: Emgu.CV
Assembly: Emgu.CV (in Emgu.CV.dll) Version: 2.2.1.1150 (2.2.1.1150)

Syntax

         
 C#  Visual Basic  Visual C++ 
public static void BM(
	Image<Gray, byte> prev,
	Image<Gray, byte> curr,
	Size blockSize,
	Size shiftSize,
	Size maxRange,
	bool usePrevious,
	Image<Gray, float> velx,
	Image<Gray, float> vely
)
Public Shared Sub BM ( _
	prev As Image(Of Gray, Byte), _
	curr As Image(Of Gray, Byte), _
	blockSize As Size, _
	shiftSize As Size, _
	maxRange As Size, _
	usePrevious As Boolean, _
	velx As Image(Of Gray, Single), _
	vely As Image(Of Gray, Single) _
)
public:
static void BM(
	Image<Gray, unsigned char>^ prev, 
	Image<Gray, unsigned char>^ curr, 
	Size blockSize, 
	Size shiftSize, 
	Size maxRange, 
	bool usePrevious, 
	Image<Gray, float>^ velx, 
	Image<Gray, float>^ vely
)

Parameters

prev
Image<(Of <(<'Gray, Byte>)>)>
First image
curr
Image<(Of <(<'Gray, Byte>)>)>
Second image
blockSize
Size
Size of basic blocks that are compared.
shiftSize
Size
Block coordinate increments.
maxRange
Size
Size of the scanned neighborhood in pixels around block.
usePrevious
Boolean
Uses previous (input) velocity field.
velx
Image<(Of <(<'Gray, Single>)>)>
Horizontal component of the optical flow of floor((prev->width - block_size.width)/shiftSize.width) x floor((prev->height - block_size.height)/shiftSize.height) size.
vely
Image<(Of <(<'Gray, Single>)>)>
Vertical component of the optical flow of the same size velx.

See Also