// ------------------------------------------------------ // MAIN // ------------------------------------------------------ int main() { try { TestRANSACPlanes(); cout << endl << "Now running detection of lines..." << endl << endl; TestRANSACLines(); win.clear(); return 0; } catch (std::exception &e) { std::cout << "MRPT exception caught: " << e.what() << std::endl; return -1; } catch (...) { printf("Untyped exception!!"); return -1; } }
// ------------------------------------------------------ // MAIN // ------------------------------------------------------ int main(int argc, char **argv) { try { printf(" track-video-features - Part of MRPT\n"); printf(" MRPT C++ Library: %s - BUILD DATE %s\n", mrpt::system::MRPT_getVersion().c_str(), mrpt::system::MRPT_getCompilationDate().c_str()); printf("-------------------------------------------------------------------\n"); // The video source: CCameraSensorPtr cam; // process cmd line arguments? if (argc<1 || argc>3) { cerr << "Incorrect number of arguments.\n"; showUsage(argv[0]); return -1; } const bool last_arg_is_save_video = !strcmp("--save-video",argv[argc-1]); if (last_arg_is_save_video) argc--; // Discard last argument if (argc==2) { if (!strcmp(argv[1],"--help")) { showUsage(argv[0]); return 0; } if (!mrpt::system::fileExists(argv[1])) { cerr << "File does not exist: " << argv[1] << endl; return -1; } const string fil = string(argv[1]); const string ext = mrpt::system::lowerCase(mrpt::system::extractFileExtension(fil,true)); if (ext=="rawlog") { // It's a rawlog: cout << "Interpreting '" << fil << "' as a rawlog file...\n"; cam = CCameraSensorPtr(new CCameraSensor); CConfigFileMemory cfg; cfg.write("CONFIG","grabber_type","rawlog"); cfg.write("CONFIG","rawlog_file", fil ); // For delayed-load images: CImage::IMAGES_PATH_BASE = CRawlog::detectImagesDirectory(fil); cam->loadConfig(cfg,"CONFIG"); cam->initialize(); // This will raise an exception if neccesary } else { // Assume it's a video: cout << "Interpreting '" << fil << "' as a video file...\n"; cam = CCameraSensorPtr(new CCameraSensor); CConfigFileMemory cfg; cfg.write("CONFIG","grabber_type","ffmpeg"); cfg.write("CONFIG","ffmpeg_url", fil ); cam->loadConfig(cfg,"CONFIG"); cam->initialize(); // This will raise an exception if neccesary } } if (!cam) { cout << "You didn't specify any video source in the command line.\n" "(You can run with --help to see usage).\n" "Showing a GUI window to select the video source...\n"; // If no camera opened so far, ask the user for one: cam = mrpt::hwdrivers::prepareVideoSourceFromUserSelection(); if (!cam) { cerr << "No images source was correctly initialized! Exiting.\n"; return -1; } } // do it: const int ret = DoTrackingDemo(cam, last_arg_is_save_video); win.clear(); mrpt::system::sleep(150); // give time to close GUI threads return ret; } catch (std::exception &e) { std::cerr << e.what() << std::endl << "Program finished for an exception!!" << std::endl; mrpt::system::pause(); return -1; } catch (...) { std::cerr << "Untyped exception!!" << std::endl; mrpt::system::pause(); return -1; } }