Classes | Defines

libof/ofHeeger.h File Reference

#include <i3d/image3d.h>
#include "ofGaborFilter.h"

Classes

class  OFHeeger< VOXEL >
 This is the original method of Heeger for the computation of 2D optical flow. More...
class  OFHeegerANI< VOXEL >
 This is an almost-original method of Heeger for the computation of 2D optical flow. More...
class  OFHeegerANI_DC< VOXEL >
 This is an almost-original method of Heeger for the computation of 2D optical flow. More...

Defines

#define PI   3.1415927f
#define halfPI   1.5707963f
#define CREATED   0
#define INCORRECTINPUT   1
#define ERROR   2
#define PARAMSKNOWN   10
#define BANKPREPARED   20
#define BANKCONVOLVED   30
#define ENERGYCOMPUTED   40
#define PARSEVALSGAUSS   50
#define FLOWCOMPUTED   60
#define NUMBEROFSPEEDS   8
#define FILTERCELLSIZE   (2*NUMBEROFSPEEDS+1)*(2*NUMBEROFSPEEDS+1)

Define Documentation

#define PI   3.1415927f
#define halfPI   1.5707963f
#define CREATED   0

described here

#define INCORRECTINPUT   1

described here

#define ERROR   2

described here

#define PARAMSKNOWN   10

described here

#define BANKPREPARED   20

described here

#define BANKCONVOLVED   30

described here

#define ENERGYCOMPUTED   40

described here

#define PARSEVALSGAUSS   50

described here

#define FLOWCOMPUTED   60

described here

#define NUMBEROFSPEEDS   8

This is relevant to the LUT OFHeeger::FilterResponses.

It states how many integer and integer+0.5 velocities alltogether are there gonna be for each element vx and vy in one (positive or negative) direction: both elements shall span range between -NUMBEROFSPEEDS/2 and NUMBEROFSPEEDS/2 in steps of 0.5. Number of velocity combinations vx,vy from such range equals to the FILTERCELLSIZE, which is the number of velocities in the LUT. The minimum and maximum speed recognized by the method is -NUMBEROFSPEEDS/2 and +NUMBEROFSPEEDS/2, respectively. The NUMBEROFSPEEDS/2 gives also the number of tilts for one direction, there is NUMBEROFSPEEDS+1 of all tilts (OFHeeger::SetParams()).

Note:
This number must be even!
#define FILTERCELLSIZE   (2*NUMBEROFSPEEDS+1)*(2*NUMBEROFSPEEDS+1)

This is relevant to the LUT OFHeeger::FilterResponses. It states how many integer velocities (vx,vy) are there gonna be altogether for one filter, for one "filter cell", in the LUT. It is (2*NUMBEROFSPEEDS+1)^2 meaning there is twice the number_of_integer_velocites_in_one_direction (there are two directions, rightwards and leftwards or upwards and downwards) plus 1 (for no-motion velocity, e.g. vx=0) for both directions.

Actually, to confuse everyone ;-), the NUMBEROFSPEEDS tells twice the maximum speed in given direction so that a real maximum velocity is NUMBEROFSPEEDS/2. But the method works with a step of 0.5 for the first seach so that the interval <-NUMBEROFSPEEDS/2, +NUMBEROFSPEEDS/2> includes exactly 2*NUMBEROFSPEEDS+1 speeds.