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.CVAssembly: 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