int main(int argc, char** argv) try { //afxMemDF |= checkAlwaysMemDF; const char *arg1 = ""; const char *arg2 = NULL; const char *arg3 = NULL; const char *arg4 = NULL; int arg = 1; do { if (argv[arg] != NULL) arg1 = argv[arg]; else break; ++arg; if (argv[arg] != NULL) arg2 = argv[arg]; else break; ++arg; if (argv[arg] != NULL) arg3 = "./Files/Teddy/Frames/%04i.pgm"; else break; ++arg; if (argv[arg] != NULL) arg4 = argv[arg]; else break; } while (false); if (arg == 1) { printf("usage: %s [<calibfile> [<imagesource>] ]\n" " <calibfile> : path to a file containing intrinsic calibration parameters\n" " <imagesource> : either one argument to specify OpenNI device ID\n" " or two arguments specifying rgb and depth file masks\n" "\n" "examples:\n" " %s ./Files/Teddy/calib.txt ./Files/Teddy/Frames/ \n" " %s ./Files/Teddy/calib.txt\n\n", argv[0], argv[0], argv[0]); } printf("initialising ...\n"); ImageSourceEngine *imageSource = NULL; IMUSourceEngine *imuSource = NULL; CreateDefaultImageSource(imageSource, imuSource, arg1, arg2, arg3, arg4); if (imageSource==NULL) { std::cout << "failed to open any image stream" << std::endl; return -1; } ITMLibSettings *internalSettings = new ITMLibSettings(); ITMMainEngine *mainEngine = new ITMMainEngine(internalSettings, &imageSource->calib, imageSource->getRGBImageSize(), imageSource->getDepthImageSize()); UIEngine::Instance()->Initialise(argc, argv, imageSource, imuSource, mainEngine, "./Files/Out", internalSettings->deviceType); UIEngine::Instance()->Run(); UIEngine::Instance()->Shutdown(); delete mainEngine; delete internalSettings; delete imageSource; if (imuSource != NULL) delete imuSource; return 0; } catch(std::exception& e) { std::cerr << e.what() << '\n'; return EXIT_FAILURE; }
int main(int argc, char** argv) try { const char *calibFile = ""; const char *imagesource_part1 = NULL; const char *imagesource_part2 = NULL; const char *imagesource_part3 = NULL; int arg = 1; do { if (argv[arg] != NULL) calibFile = argv[arg]; else break; ++arg; if (argv[arg] != NULL) imagesource_part1 = argv[arg]; else break; ++arg; if (argv[arg] != NULL) imagesource_part2 = argv[arg]; else break; ++arg; if (argv[arg] != NULL) imagesource_part3 = argv[arg]; else break; } while (false); if (arg == 1) { printf("usage: %s [<calibfile> [<imagesource>] ]\n" " <calibfile> : path to a file containing intrinsic calibration parameters\n" " <imagesource> : either one argument to specify OpenNI device ID\n" " or two arguments specifying rgb and depth file masks\n" "\n" "examples:\n" " %s ./Files/Teddy/calib.txt ./Files/Teddy/Frames/%%04i.ppm ./Files/Teddy/Frames/%%04i.pgm\n" " %s ./Files/Teddy/calib.txt\n\n", argv[0], argv[0], argv[0]); } printf("initialising ...\n"); ITMLibSettings *internalSettings = new ITMLibSettings(); ImageSourceEngine *imageSource; IMUSourceEngine *imuSource = NULL; printf("using calibration file: %s\n", calibFile); if (imagesource_part2 == NULL) { printf("using OpenNI device: %s\n", (imagesource_part1==NULL)?"<OpenNI default device>":imagesource_part1); imageSource = new OpenNIEngine(calibFile, imagesource_part1); if (imageSource->getDepthImageSize().x == 0) { delete imageSource; printf("trying MS Kinect device\n"); imageSource = new Kinect2Engine(calibFile); } } else { if (imagesource_part3 == NULL) { printf("using rgb images: %s\nusing depth images: %s\n", imagesource_part1, imagesource_part2); ImageMaskPathGenerator pathGenerator(imagesource_part1, imagesource_part2); imageSource = new ImageFileReader<ImageMaskPathGenerator>(calibFile, pathGenerator); } else { printf("using rgb images: %s\nusing depth images: %s\nusing imu data: %s\n", imagesource_part1, imagesource_part2, imagesource_part3); imageSource = new RawFileReader(calibFile, imagesource_part1, imagesource_part2, Vector2i(320, 240), 0.5f); imuSource = new IMUSourceEngine(imagesource_part3); } } ITMMainEngine *mainEngine = new ITMBasicEngine<ITMVoxel,ITMVoxelIndex>( internalSettings, imageSource->getCalib(), imageSource->getRGBImageSize(), imageSource->getDepthImageSize() ); CLIEngine::Instance()->Initialise(imageSource, imuSource, mainEngine, internalSettings->deviceType); CLIEngine::Instance()->Run(); CLIEngine::Instance()->Shutdown(); delete mainEngine; delete internalSettings; delete imageSource; return 0; } catch(std::exception& e) { std::cerr << e.what() << '\n'; return EXIT_FAILURE; }
int main(int argc, char** argv) try { const char *calibFile = "./Files/Teddy/calib.txt"; const char *imagesource_part1 = NULL; const char *imagesource_part2 = NULL; int arg = 1; /*do { if (argv[arg] != NULL) calibFile = argv[arg]; else break; ++arg; if (argv[arg] != NULL) imagesource_part1 = argv[arg]; else break; ++arg; if (argv[arg] != NULL) imagesource_part2 = argv[arg]; else break; } while (false); */ if (arg == 1) { printf("usage: %s [<calibfile> [<imagesource>] ]\n" " <calibfile> : path to a file containing intrinsic calibration parameters\n" " <imagesource> : either one argument to specify OpenNI device ID\n" " or two arguments specifying rgb and depth file masks\n" "\n" "examples:\n" " %s ./Files/Teddy/calib.txt ./Files/Teddy/Frames/%%04i.ppm ./Files/Teddy/Frames/%%04i.pgm\n" " %s ./Files/Teddy/calib.txt\n\n", argv[0], argv[0], argv[0]); } printf("initialising ...\n"); ITMLibSettings *internalSettings = new ITMLibSettings(); ImageSourceEngine *imageSource; printf("using calibration file: %s\n", calibFile); if (imagesource_part2 == NULL) { printf("using OpenNI device: %s\n", (imagesource_part1==NULL)?"<OpenNI default device>":imagesource_part1); imageSource = new OpenNIEngine(calibFile, imagesource_part1); if (imageSource->getDepthImageSize().x == 0) { delete imageSource; printf("trying MS Kinect device\n"); imageSource = new Kinect2Engine(calibFile); } } else { printf("using rgb images: %s\nusing depth images: %s\n", imagesource_part1, imagesource_part2); imageSource = new ImageFileReader(calibFile, imagesource_part1, imagesource_part2); } ITMMainEngine *mainEngine = new ITMMainEngine(internalSettings, &imageSource->calib, imageSource->getRGBImageSize(), imageSource->getDepthImageSize()); UIEngine::Instance()->Initialise(argc, argv, internalSettings, imageSource, mainEngine, "./Files/Out");//hao modified it UIEngine::Instance()->Run(); UIEngine::Instance()->Shutdown(); delete mainEngine; delete internalSettings; delete imageSource; return 0; } catch(std::exception& e) { std::cerr << e.what() << '\n'; return EXIT_FAILURE; }