Function:OpticalFlowHS
Jump to navigation
Jump to search
Function
CuviStatus opticalFlowHS(const CuviImage& previous, const CuviImage& next, Cuvi32f* flowX, Cuvi32f* flowY, const bool usePrevious, const Cuvi32f lambda = 1.0f , const Cuvi32s iterations = 1, const CuviStream& stream = CuviStream()); |
Parameters
Name | Type | Description |
---|---|---|
previous | const CuviImage& | The first image whose features are to be tracked |
next | const CuviImage& | Second image, in which to look for features of first image |
flowX | Cuvi32f* | Horizontal velocity vector |
flowY | Cuvi32f* | Vertical velocity vector |
usePrevious | bool | use previous (input) velocity field |
lambda | const Cuvi32f | Lagrangian multiplier |
iterations | const Cuvi32s | Maximum number of iterations |
stream | CuviStream* | GPU stream ID for execution |
Image Type Support
Input | Output |
---|---|
8uC1 | 32fC1 |
Sample
Example
//Create two 8-bit Grays-scale CuviImage
CuviImage gimg1 = cuvi::io::loadImage(path,CUVI_LOAD_IMAGE_GRAYSCALE);
CuviImage gimg2 = cuvi::io::loadImage(path,CUVI_LOAD_IMAGE_GRAYSCALE);
//Create output memory
Cuvi32f* u = new Cuvi32f[gimg.width() * gimg.height()];
Cuvi32f* v = new Cuvi32f[gimg.width() * gimg.height()];
//Calculates flow of each image pixel in two frames using Horn–Schunck method
cuvi::computerVision::opticalFlowHS(gimg1,gimg2,u,v,false); |