2011-05-22 02:32:34 +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()
|
|
|
|
{
|
2011-06-03 22:53:38 +08:00
|
|
|
printf("\n This sample demonstrates cascade's convertation \n"
|
|
|
|
"Usage:\n"
|
|
|
|
"./convert_cascade --size=\"<width>x<height>\"<convertation size> \n"
|
|
|
|
" input_cascade_path \n"
|
|
|
|
" output_cascade_filename\n"
|
|
|
|
"Example: \n"
|
|
|
|
"./convert_cascade --size=640x480 ../../opencv/data/haarcascades/haarcascade_eye.xml ../../opencv/data/haarcascades/test_cascade.xml \n"
|
|
|
|
);
|
2010-12-01 16:36:59 +08:00
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
2011-06-03 22:53:38 +08:00
|
|
|
help();
|
|
|
|
|
2010-05-12 01:44:00 +08:00
|
|
|
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
|