typedef struct {
int mindist;
int window_width, window_height;
KLT_BOOL sequentialMode;
KLT_BOOL smoothBeforeSelecting;
KLT_BOOL writeInternalImages;
KLT_BOOL lighting_insensitive;
int min_eigenvalue;
float min_determinant;
float min_displacement;
int max_iterations;
float max_residue;
float grad_sigma;
float smooth_sigma_fact;
float pyramid_sigma_fact;
float step_factor;
int nSkippedPixels;
int borderx;
int bordery;
int nPyramidLevels;
int subsampling;
int affine_window_width, affine_window_height;
int affineConsistencyCheck;
int affine_max_iterations;
float affine_max_residue;
float affine_min_displacement;
float affine_max_displacement_differ;
void *pyramid_last;
void *pyramid_last_gradx;
void *pyramid_last_grady;
} *KLT_TrackingContext;

A KLT_TrackingContext collects all the parameters governing the tracker, so that calls to the tracker do not have to involve an exhorbitant number of parameters. Each parameter may be changed manually by the user except for the last three, which must not be touched. In addition, a few of the parameters can be more easily changed via the convenience functions KLTChangeTCPyramid() and KLTUpdateTCBorder(). Below is a brief description of each parameter, along with suggested default values (which are located in "klt.c"). The parameters preceded by an asterisk (*) are those whose effects can be viewed by setting writeInternalImages.