example3.c

来自「this is code for finding and tracking fe」· C语言 代码 · 共 67 行

C
67
字号
/**********************************************************************Finds the 150 best features in an image and tracks them through the next two images.  The sequential mode is set in order to speedprocessing.  The features are stored in a feature table, which is thensaved to a text file; each feature list is also written to a PPM file.**********************************************************************/#include <stdlib.h>#include <stdio.h>#include "pnmio.h"#include "klt.h"/* #define REPLACE */#ifdef WIN32
int RunExample3()
#else
int main()
#endif
{  unsigned char *img1, *img2;  char fnamein[100], fnameout[100];  KLT_TrackingContext tc;  KLT_FeatureList fl;  KLT_FeatureTable ft;  int nFeatures = 150, nFrames = 10;  int ncols, nrows;  int i;  tc = KLTCreateTrackingContext();  fl = KLTCreateFeatureList(nFeatures);  ft = KLTCreateFeatureTable(nFrames, nFeatures);  tc->sequentialMode = TRUE;  tc->writeInternalImages = FALSE;  tc->affineConsistencyCheck = -1;  /* set this to 2 to turn on affine consistency check */   img1 = pgmReadFile("img0.pgm", NULL, &ncols, &nrows);  img2 = (unsigned char *) malloc(ncols*nrows*sizeof(unsigned char));  KLTSelectGoodFeatures(tc, img1, ncols, nrows, fl);  KLTStoreFeatureList(fl, ft, 0);  KLTWriteFeatureListToPPM(fl, img1, ncols, nrows, "feat0.ppm");  for (i = 1 ; i < nFrames ; i++)  {    sprintf(fnamein, "img%d.pgm", i);    pgmReadFile(fnamein, img2, &ncols, &nrows);    KLTTrackFeatures(tc, img1, img2, ncols, nrows, fl);#ifdef REPLACE    KLTReplaceLostFeatures(tc, img2, ncols, nrows, fl);#endif    KLTStoreFeatureList(fl, ft, i);    sprintf(fnameout, "feat%d.ppm", i);    KLTWriteFeatureListToPPM(fl, img2, ncols, nrows, fnameout);  }  KLTWriteFeatureTable(ft, "features.txt", "%5.1f");  KLTWriteFeatureTable(ft, "features.ft", NULL);  KLTFreeFeatureTable(ft);  KLTFreeFeatureList(fl);  KLTFreeTrackingContext(tc);  free(img1);  free(img2);
  return 0;
}

⌨️ 快捷键说明

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