2010-11-27 01:59:40 +08:00
|
|
|
#include <opencv2/objdetect/objdetect.hpp>
|
|
|
|
#include <opencv2/highgui/highgui.hpp>
|
2010-05-12 01:44:00 +08:00
|
|
|
|
2010-11-27 01:59:40 +08:00
|
|
|
#include <ctype.h>
|
2010-05-12 01:44:00 +08:00
|
|
|
#include <stdio.h>
|
|
|
|
|
2010-12-01 16:36:59 +08:00
|
|
|
void help()
|
|
|
|
{
|
|
|
|
printf( "Usage:\n" ""
|
|
|
|
"./convert_cascade --size=\"<width>x<height>\" input_cascade_path output_cascade_filename\n" );
|
|
|
|
}
|
|
|
|
|
2010-05-12 01:44:00 +08:00
|
|
|
int main( int argc, char** argv )
|
|
|
|
{
|
|
|
|
const char* size_opt = "--size=";
|
|
|
|
char comment[1024];
|
|
|
|
CvHaarClassifierCascade* cascade = 0;
|
|
|
|
CvSize size;
|
|
|
|
|
|
|
|
if( argc != 4 || strncmp( argv[1], size_opt, strlen(size_opt) ) != 0 )
|
|
|
|
{
|
2010-12-01 16:36:59 +08:00
|
|
|
help();
|
2010-05-12 01:44:00 +08:00
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
|
|
|
sscanf( argv[1], "--size=%ux%u", &size.width, &size.height );
|
|
|
|
cascade = cvLoadHaarClassifierCascade( argv[2], size );
|
|
|
|
|
|
|
|
if( !cascade )
|
|
|
|
{
|
|
|
|
fprintf( stderr, "Input cascade could not be found/opened\n" );
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
|
|
|
sprintf( comment, "Automatically converted from %s, window size = %dx%d", argv[2], size.width, size.height );
|
|
|
|
cvSave( argv[3], cascade, 0, comment, cvAttrList(0,0) );
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
#ifdef _EiC
|
|
|
|
main(1,"facedetect.c");
|
|
|
|
#endif
|