int main ( int argc, char** argv ) { validExtensions.push_back("jpg"); validExtensions.push_back("ppm"); validExtensions.push_back("png"); plateSize = cv::Size( plate_width, plate_height ); hog.winSize = cv::Size(64, 128); if( argc >= 2 ) { for(int i = 1; i < argc; i++ ) { std::string opt = std::string(argv[i]); if( opt == "-v" ) { trainValidator( std::string(argv[i+1]), std::string(argv[i+2]), std::string(argv[i+3]) ); break; } if( opt == "-c" ) { std::vector< std::string > classesPaths; for( int n = i+2; n < argc; n++ ) { classesPaths.push_back(std::string(argv[n])); } trainClassifier( std::string(argv[i+1]), classesPaths ); break; } } } else { std::cout << "Usage:\n" << argv[0] << "To train a validator:" << std::endl << "\t -v <path to positive objects images> <path to negative objects images> <path for output files> \n" << "To train a classifier:" << std::endl << "\t -c <path for output files> <path to class 0 images> <path to class 1 images> ... <path to class n images> \n"; } return 0; }
int main(int argc, char **argv) { float train_data[train_size][data_dimension] = { {0.1,0.2}, {0.3,0.1}, {3.1,3.2}, {3.3,4.1}, {5.1,5.2} }; std::string train_data_targets[train_size] = {"1","1","2","2","3"}; float test_data[test_size][data_dimension] = { {0.0,0.0}, {5.5,5.5}, {2.9,3.6} }; std::vector<classifiers_test::ClassDataPoint> train_points; std::vector<classifiers_test::ClassDataPoint> test_points; printf("train:\n"); for (int i = 0; i < train_size; i++) { classifiers_test::ClassDataPoint *dp = new classifiers_test::ClassDataPoint(); for (int j = 0; j < data_dimension; j++) { dp->point.insert(dp->point.end(), train_data[i][j]); printf("%f ", train_data[i][j]); } printf("\n"); dp->target_class = train_data_targets[i]; train_points.insert(train_points.end(), *dp); } printf("test: \n"); for (int i = 0; i < test_size; i++) { classifiers_test::ClassDataPoint *dp = new classifiers_test::ClassDataPoint(); for (int j = 0; j < data_dimension; j++) { dp->point.insert(dp->point.end(), test_data[i][j]); printf("%f ", test_data[i][j]); } printf("\n"); dp->target_class = ""; test_points.insert(test_points.end(), *dp); } ros::init(argc, argv, "classifiers_test"); ros::NodeHandle n; ros::service::waitForService("/ml_classifiers/create_classifier"); if (!createClassifier(n, "testc","ml_classifiers/SVMClassifier")) return 1; if (!addClassDataPoints(n, "testc", train_points)) return 1; if (!trainClassifier(n, "testc")) return 1; if (!classifyPoints(n, "testc", test_points)) return 1; return 0; }