2 #include "cascadeclassifier.h"
4 int main( int argc, char* argv[] )
6 CvCascadeClassifier classifier;
7 char* cascadeDirName = NULL;
13 int numPrecalcVal = 10000,
14 numPrecalcIdx = 50000;
15 bool baseFormatSave = false;
17 CvCascadeParams cascadeParams;
19 CvCascadeBoostParams stageParams;
21 CvFeatureParams* featureParams[] = { new CvHaarFeatureParams(),
22 new CvLBPFeatureParams() };
23 int fc = sizeof(featureParams)/sizeof(featureParams[0]);
28 " -data <cascade_dir_name>\n"
29 " -vec <vec_file_name>\n"
30 " -bg <background_file_name>\n"
31 " [-numPos <number_of_positive_samples = %d>]\n"
32 " [-numNeg <number_of_negative_samples = %d>]\n"
33 " [-numStages <number_of_stages = %d>]\n"
34 " [-numPrecalcVal <number_of_precalculated_vals = %d>]\n"
35 " [-numPrecalcIdx <number_of_precalculated_idxs = %d>]\n"
36 " [-baseFormatSave]\n",
37 argv[0], numPos, numNeg, numStages, numPrecalcVal, numPrecalcIdx );
39 cascadeParams.printDefaults();
41 printf("--boostStageParams--\n");
42 stageParams.printDefault();
44 for( int fi = 0; fi < fc; fi++ )
45 featureParams[fi]->printDefaults();
50 for( int i = 1; i < argc; i++ )
53 if( !strcmp( argv[i], "-data" ) )
55 cascadeDirName = argv[++i];
57 else if( !strcmp( argv[i], "-vec" ) )
61 else if( !strcmp( argv[i], "-bg" ) )
65 else if( !strcmp( argv[i], "-numPos" ) )
67 numPos = atoi( argv[++i] );
69 else if( !strcmp( argv[i], "-numNeg" ) )
71 numNeg = atoi( argv[++i] );
73 else if( !strcmp( argv[i], "-numStages" ) )
75 numStages = atoi( argv[++i] );
77 else if( !strcmp( argv[i], "-numPrecalcVal" ) )
79 numPrecalcVal = atoi( argv[++i] );
81 else if( !strcmp( argv[i], "-numPrecalcIdx" ) )
83 numPrecalcIdx = atoi( argv[++i] );
85 else if( !strcmp( argv[i], "-baseFormatSave" ) )
87 baseFormatSave = true;
89 else if ( cascadeParams.scanAttr( argv[i], argv[i+1] ) ) { i++; }
90 else if ( stageParams.scanAttr( argv[i], argv[i+1] ) ) { i++; }
93 for( int fi = 0; fi < fc; fi++ )
95 set = featureParams[fi]->scanAttr(argv[i], argv[i+1]);
105 classifier.train( cascadeDirName,
109 numPrecalcVal, numPrecalcIdx,
112 *featureParams[cascadeParams.featureType],
116 for( int fi = 0; fi < fc; fi++ )
117 delete featureParams[fi];