JD2022-TU1/main/extern/KinectGesture/Inc/OpticalFlowTracker.h

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