⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 klt.h

📁 KLT: An Implementation of the Kanade-Lucas-Tomasi Feature Tracker KLT: An Implementation of the
💻 H
字号:
/********************************************************************* * klt.h * * Kanade-Lucas-Tomasi tracker *********************************************************************/#ifndef _KLT_H_#define _KLT_H_#ifdef __cplusplusextern "C" {#endiftypedef float KLT_locType;typedef unsigned char KLT_PixelType;#define KLT_BOOL int#ifndef TRUE#define TRUE  1#define FALSE 0#endif#ifndef NULL#define NULL  0#endif#define KLT_TRACKED           0#define KLT_NOT_FOUND        -1#define KLT_SMALL_DET        -2#define KLT_MAX_ITERATIONS   -3#define KLT_OOB              -4#define KLT_LARGE_RESIDUE    -5#include "klt_util.h" /* for affine mapping *//******************* * Structures */typedef struct  {  /* Available to user */  int mindist;			/* min distance b/w features */  int window_width, window_height;  KLT_BOOL sequentialMode;	/* whether to save most recent image to save time */  /* can set to TRUE manually, but don't set to */  /* FALSE manually */  KLT_BOOL smoothBeforeSelecting;	/* whether to smooth image before */  /* selecting features */  KLT_BOOL writeInternalImages;	/* whether to write internal images */
  /* tracking features */  KLT_BOOL lighting_insensitive;  /* whether to normalize for gain and bias (not in original algorithm) */
    /* Available, but hopefully can ignore */  int min_eigenvalue;		/* smallest eigenvalue allowed for selecting */  float min_determinant;	/* th for determining lost */  float min_displacement;	/* th for stopping tracking when pixel changes little */  int max_iterations;		/* th for stopping tracking when too many iterations */  float max_residue;		/* th for stopping tracking when residue is large */  float grad_sigma;  float smooth_sigma_fact;  float pyramid_sigma_fact;  float step_factor;  /* size of Newton steps; 2.0 comes from equations, 1.0 seems to avoid overshooting */
  int nSkippedPixels;		/* # of pixels skipped when finding features */  int borderx;			/* border in which features will not be found */  int bordery;  int nPyramidLevels;		/* computed from search_ranges */  int subsampling;		/* 		" */
    /* for affine mapping */   int affine_window_width, affine_window_height;  int affineConsistencyCheck; /* whether to evaluates the consistency of features with affine mapping                               -1 = don't evaluates the consistency                              0 = evaluates the consistency of features with translation mapping                              1 = evaluates the consistency of features with similarity mapping                              2 = evaluates the consistency of features with affine mapping  */  int affine_max_iterations;    float affine_max_residue;  float affine_min_displacement;          float affine_max_displacement_differ; /* th for the difference between the displacement calculated   by the affine tracker and the frame to frame tracker in pel*/  /* User must not touch these */  void *pyramid_last;  void *pyramid_last_gradx;  void *pyramid_last_grady;}  KLT_TrackingContextRec, *KLT_TrackingContext;typedef struct  {  KLT_locType x;  KLT_locType y;  int val;	  /* for affine mapping */  _KLT_FloatImage aff_img;   _KLT_FloatImage aff_img_gradx;  _KLT_FloatImage aff_img_grady;  KLT_locType aff_x;  KLT_locType aff_y;  KLT_locType aff_Axx;  KLT_locType aff_Ayx;  KLT_locType aff_Axy;  KLT_locType aff_Ayy;}  KLT_FeatureRec, *KLT_Feature;typedef struct  {  int nFeatures;  KLT_Feature *feature;}  KLT_FeatureListRec, *KLT_FeatureList;typedef struct  {  int nFrames;  KLT_Feature *feature;}  KLT_FeatureHistoryRec, *KLT_FeatureHistory;typedef struct  {  int nFrames;  int nFeatures;  KLT_Feature **feature;}  KLT_FeatureTableRec, *KLT_FeatureTable;/******************* * Functions *//* Create */KLT_TrackingContext KLTCreateTrackingContext(void);KLT_FeatureList KLTCreateFeatureList(  int nFeatures);KLT_FeatureHistory KLTCreateFeatureHistory(  int nFrames);KLT_FeatureTable KLTCreateFeatureTable(  int nFrames,  int nFeatures);/* Free */void KLTFreeTrackingContext(  KLT_TrackingContext tc);void KLTFreeFeatureList(  KLT_FeatureList fl);void KLTFreeFeatureHistory(  KLT_FeatureHistory fh);void KLTFreeFeatureTable(  KLT_FeatureTable ft);/* Processing */void KLTSelectGoodFeatures(  KLT_TrackingContext tc,  KLT_PixelType *img,  int ncols,  int nrows,  KLT_FeatureList fl);void KLTTrackFeatures(  KLT_TrackingContext tc,  KLT_PixelType *img1,  KLT_PixelType *img2,  int ncols,  int nrows,  KLT_FeatureList fl);void KLTReplaceLostFeatures(  KLT_TrackingContext tc,  KLT_PixelType *img,  int ncols,  int nrows,  KLT_FeatureList fl);/* Utilities */int KLTCountRemainingFeatures(  KLT_FeatureList fl);void KLTPrintTrackingContext(  KLT_TrackingContext tc);void KLTChangeTCPyramid(  KLT_TrackingContext tc,  int search_range);void KLTUpdateTCBorder(  KLT_TrackingContext tc);void KLTStopSequentialMode(  KLT_TrackingContext tc);void KLTSetVerbosity(  int verbosity);float _KLTComputeSmoothSigma(  KLT_TrackingContext tc);/* Storing/Extracting Features */void KLTStoreFeatureList(  KLT_FeatureList fl,  KLT_FeatureTable ft,  int frame);void KLTExtractFeatureList(  KLT_FeatureList fl,  KLT_FeatureTable ft,  int frame);void KLTStoreFeatureHistory(  KLT_FeatureHistory fh,  KLT_FeatureTable ft,  int feat);void KLTExtractFeatureHistory(  KLT_FeatureHistory fh,  KLT_FeatureTable ft,  int feat);/* Writing/Reading */void KLTWriteFeatureListToPPM(  KLT_FeatureList fl,  KLT_PixelType *greyimg,  int ncols,  int nrows,  char *filename);void KLTWriteFeatureList(  KLT_FeatureList fl,  char *filename,  char *fmt);void KLTWriteFeatureHistory(  KLT_FeatureHistory fh,  char *filename,  char *fmt);void KLTWriteFeatureTable(  KLT_FeatureTable ft,  char *filename,  char *fmt);KLT_FeatureList KLTReadFeatureList(  KLT_FeatureList fl,  char *filename);KLT_FeatureHistory KLTReadFeatureHistory(  KLT_FeatureHistory fh,  char *filename);KLT_FeatureTable KLTReadFeatureTable(  KLT_FeatureTable ft,  char *filename);#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -