|
|
(2 intermediate revisions by the same user not shown) |
Line 49: |
Line 49: |
| |} | | |} |
|
| |
|
| ===Image Type Support=== | | ====Image Type Support==== |
| | | {| |
| | |style="font-size:75%;"| |
| {| class="wikitable" | | {| class="wikitable" |
| |- | | |- |
Line 59: |
Line 60: |
| | 2x Cuvi32f* | | | 2x Cuvi32f* |
| |} | | |} |
|
| |
|
| |
|
| |
| ===Samples===
| |
| {|
| |
| |-
| |
| |[[File:OF_frame1.png|frame|First Input Image (8-bit)]]
| |
| |[[File:OF_frame2.png|frame|Second Input Image (8-bit)]]
| |
| |-
| |
| |[[File:OF_flowMag.png|frame| Optical Flow Magnitude]]
| |
| |[[File:OF_sparseFlow.png|frame| Flow of selected points]]
| |
| |} | | |} |
|
| |
|
| | ====Samples==== |
| | [[File:OF_frame1.png|none|frame|First Input Image (8-bit)]] |
| | <br/> |
| | [[File:OF_frame2.png|none|frame|Second Input Image (8-bit)]] |
| | <br/> |
| | [[File:OF_flowMag.png|none|frame| Optical Flow Magnitude]] |
| | <br/> |
| | [[File:OF_sparseFlow.png|none|frame| Flow of selected points]] |
| | <br/> |
|
| |
|
| | | ====Code Example==== |
| ===Example=== | |
| {| | | {| |
| |style="font-size:150%;"| | | |style="font-size:100%;"| |
| <syntaxhighlight lang="cpp"> | | <syntaxhighlight lang="cpp"> |
|
| |
|
Latest revision as of 22:18, 18 October 2022
Computes Dense Optical Flow between each pixel of two images using pyramidal Lucas-Kanade method.
Function
CuviStatus opticalFlowPyrLKDense(const CuviImage& previous,
const CuviImage& next,
Cuvi32f* flowX
Cuvi32f* flowY,
const CuviTrackingCriteria criteria,
const CuviStream& stream = CuviStream());
|
Parameters
Name
|
Type
|
Description
|
previous
|
CuviImage&
|
The first image whose features are to be tracked
|
next
|
CuviImage&
|
Second image, in which to look for features of first image
|
flowX
|
Cuvi32f*
|
Horizontal optical flow
|
flowY
|
Cuvi32f*
|
Vertical optical flow
|
criteria
|
const CuviFeaturesCriteria
|
A structure containing various parameters that affect optical flow calculation
|
stream
|
const CuviStream&
|
GPU stream ID for execution
|
|
Image Type Support
Input
|
Output
|
2x 8uC1
|
2x Cuvi32f*
|
|
Samples
Error creating thumbnail: Unable to save thumbnail to destination
First Input Image (8-bit)
Error creating thumbnail: Unable to save thumbnail to destination
Second Input Image (8-bit)
Error creating thumbnail: Unable to save thumbnail to destination
Optical Flow Magnitude
Error creating thumbnail: Unable to save thumbnail to destination
Flow of selected points
Code Example
//Create two 8-bit Grays-scale CuviImage objects
CuviImage gimg1 = cuvi::io::loadImage(path,CUVI_LOAD_IMAGE_GRAYSCALE);
CuviImage gimg2 = cuvi::io::loadImage(path,CUVI_LOAD_IMAGE_GRAYSCALE);
Cuvi32f* flowX = new Cuvi32f[gimg1.width() * gimg1.height()];
Cuvi32f* flowY = new Cuvi32f[gimg1.width() * gimg1.height()];
//tracking criteria
CuviTrackingCriteria tc;
//Compute optical flow between first frame and second frame
cuvi::computerVision::opticalFlowPyrLKDense(gimg1,gimg2,flowX,flowY,tc);
|