77 lines
No EOL
2.1 KiB
C++
77 lines
No EOL
2.1 KiB
C++
#ifdef GESTURE_EVALUATOR
|
|
#pragma once
|
|
|
|
namespace KinectGesture
|
|
{
|
|
typedef float f32;
|
|
typedef unsigned short u16;
|
|
|
|
struct OpticalFlowCell
|
|
{
|
|
OpticalFlowCell()
|
|
{
|
|
iprev = i = 0.0f;
|
|
Ix = Iy = It = 0.0f;
|
|
u = v = 0.0f;
|
|
ua = va = 0.0f;
|
|
}
|
|
|
|
float iprev, i; //intensity, 0..1
|
|
float Ix, Iy, It; //intensity derivatives (x,y using neighbours and time)
|
|
float u, v; //optical flow vector
|
|
float ua, va; //weighted averages of neighbours
|
|
};
|
|
|
|
#define OPTICALFLOW_ALPHA_SQUARE 0.25f * 0.25f
|
|
#define OPTICALFLOW_DAMPING 0.8f
|
|
#define OPTICALFLOW_NORMALIZE 1.0f / OPTICALFLOW_DEPTH_FAR_Z
|
|
#define OPTICALFLOW_SAMPLE_PERCENT (f32)(OPTICALFLOW_FULLSCREENGRID_X * OPTICALFLOW_FULLSCREENGRID_Y * OPTICALFLOW_SAMPLING_X * OPTICALFLOW_SAMPLING_Y) / (f32)(OPTICALFLOW_DEPTH_HEIGHT * OPTICALFLOW_DEPTH_WIDTH)
|
|
#define OPTICALFLOW_WIDTH_TO_CELL (f32)OPTICALFLOW_FULLSCREENGRID_X / (f32)OPTICALFLOW_DEPTH_WIDTH
|
|
#define OPTICALFLOW_HEIGHT_TO_CELL (f32)OPTICALFLOW_FULLSCREENGRID_Y / (f32)OPTICALFLOW_DEPTH_HEIGHT
|
|
#define OPTICALFLOW_BOOST 1.5f
|
|
|
|
#if defined(TARGET_DURANGO)
|
|
|
|
#define OPTICALFLOW_DEPTH_WIDTH 512
|
|
#define OPTICALFLOW_DEPTH_HEIGHT 424
|
|
|
|
#define OPTICALFLOW_DEPTH_FAR_Z 4.5f * 1000.0f
|
|
|
|
#define OPTICALFLOW_FULLSCREENGRID_X 64
|
|
#define OPTICALFLOW_FULLSCREENGRID_Y 53
|
|
|
|
#define OPTICALFLOW_SAMPLING_X 4
|
|
#define OPTICALFLOW_SAMPLING_Y 4
|
|
|
|
#elif defined(TARGET_ORBIS)
|
|
|
|
#define OPTICALFLOW_DEPTH_WIDTH 160
|
|
#define OPTICALFLOW_DEPTH_HEIGHT 100
|
|
|
|
#define OPTICALFLOW_DEPTH_FAR_Z 4.5f * 1000.0f
|
|
|
|
#define OPTICALFLOW_FULLSCREENGRID_X 40
|
|
#define OPTICALFLOW_FULLSCREENGRID_Y 25
|
|
|
|
#define OPTICALFLOW_SAMPLING_X 1
|
|
#define OPTICALFLOW_SAMPLING_Y 1
|
|
|
|
const short INVALID_DEPTH = 32001;
|
|
|
|
#elif defined(TARGET_X360)
|
|
|
|
#define OPTICALFLOW_DEPTH_WIDTH ( 320 )
|
|
#define OPTICALFLOW_DEPTH_HEIGHT ( 240 )
|
|
|
|
#define OPTICALFLOW_DEPTH_FAR_Z ( 3.9f * 1000.0f )
|
|
|
|
#define OPTICALFLOW_FULLSCREENGRID_X ( 40 )
|
|
#define OPTICALFLOW_FULLSCREENGRID_Y ( 30 )
|
|
|
|
#define OPTICALFLOW_SAMPLING_X ( 4 )
|
|
#define OPTICALFLOW_SAMPLING_Y ( 4 )
|
|
|
|
#endif
|
|
|
|
}
|
|
#endif |