77 lines
2.7 KiB
ReStructuredText
77 lines
2.7 KiB
ReStructuredText
|
Video Analysis
|
||
|
==============
|
||
|
|
||
|
.. highlight:: cpp
|
||
|
|
||
|
|
||
|
gpu::BroxOpticalFlow
|
||
|
--------------------
|
||
|
.. ocv:class:: gpu::BroxOpticalFlow
|
||
|
|
||
|
Class computing the optical flow for two images using Brox et al Optical Flow algorithm ([Brox2004]_). ::
|
||
|
|
||
|
class BroxOpticalFlow
|
||
|
{
|
||
|
public:
|
||
|
BroxOpticalFlow(float alpha_, float gamma_, float scale_factor_, int inner_iterations_, int outer_iterations_, int solver_iterations_);
|
||
|
|
||
|
//! Compute optical flow
|
||
|
//! frame0 - source frame (supports only CV_32FC1 type)
|
||
|
//! frame1 - frame to track (with the same size and type as frame0)
|
||
|
//! u - flow horizontal component (along x axis)
|
||
|
//! v - flow vertical component (along y axis)
|
||
|
void operator ()(const GpuMat& frame0, const GpuMat& frame1, GpuMat& u, GpuMat& v, Stream& stream = Stream::Null());
|
||
|
|
||
|
//! flow smoothness
|
||
|
float alpha;
|
||
|
|
||
|
//! gradient constancy importance
|
||
|
float gamma;
|
||
|
|
||
|
//! pyramid scale factor
|
||
|
float scale_factor;
|
||
|
|
||
|
//! number of lagged non-linearity iterations (inner loop)
|
||
|
int inner_iterations;
|
||
|
|
||
|
//! number of warping iterations (number of pyramid levels)
|
||
|
int outer_iterations;
|
||
|
|
||
|
//! number of linear system solver iterations
|
||
|
int solver_iterations;
|
||
|
|
||
|
GpuMat buf;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
gpu::interpolateFrames
|
||
|
----------------------
|
||
|
Interpolate frames (images) using provided optical flow (displacement field).
|
||
|
|
||
|
.. ocv:function:: void gpu::interpolateFrames(const GpuMat& frame0, const GpuMat& frame1, const GpuMat& fu, const GpuMat& fv, const GpuMat& bu, const GpuMat& bv, float pos, GpuMat& newFrame, GpuMat& buf, Stream& stream = Stream::Null())
|
||
|
|
||
|
:param frame0: First frame (32-bit floating point images, single channel).
|
||
|
|
||
|
:param frame1: Second frame. Must have the same type and size as ``frame0`` .
|
||
|
|
||
|
:param fu: Forward horizontal displacement.
|
||
|
|
||
|
:param fv: Forward vertical displacement.
|
||
|
|
||
|
:param bu: Backward horizontal displacement.
|
||
|
|
||
|
:param bv: Backward vertical displacement.
|
||
|
|
||
|
:param pos: New frame position.
|
||
|
|
||
|
:param newFrame: Output image.
|
||
|
|
||
|
:param buf: Temporary buffer, will have width x 6*height size, CV_32FC1 type and contain 6 GpuMat: occlusion masks for first frame, occlusion masks for second, interpolated forward horizontal flow, interpolated forward vertical flow, interpolated backward horizontal flow, interpolated backward vertical flow.
|
||
|
|
||
|
:param stream: Stream for the asynchronous version.
|
||
|
|
||
|
|
||
|
|
||
|
.. [Brox2004] T. Brox, A. Bruhn, N. Papenberg, J. Weickert. *High accuracy optical flow estimation based on a theory for warping*. ECCV 2004.
|