GTA-VI.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #include "../arffHelper/Arff.h"
  2. #include "VideoWidget.h"
  3. #include "MainWindow.h"
  4. #include <QtGui>
  5. #include <iostream>
  6. using namespace std;
  7. int main(int argc, char *argv[])
  8. {
  9. QApplication app(argc, argv);
  10. QApplication::setApplicationName("GTA-VI (Ground Truth Annotation-Visualization Interface)");
  11. QCoreApplication::setApplicationVersion("version 2.0");
  12. // initialize parser
  13. QCommandLineParser parser;
  14. parser.addHelpOption();
  15. parser.addVersionOption();
  16. QCommandLineOption videoFileOption(QStringList() << "vf" << "video-file",
  17. QCoreApplication::translate("main", "Video file."),
  18. QCoreApplication::translate("main", "file"));
  19. parser.addOption(videoFileOption);
  20. QCommandLineOption arffFileOption(QStringList() << "af" << "arff-file",
  21. QCoreApplication::translate("main", "ARFF file."),
  22. QCoreApplication::translate("main", "file"));
  23. parser.addOption(arffFileOption);
  24. QCommandLineOption saveFileOption(QStringList() << "sf" << "save-file",
  25. QCoreApplication::translate("main", "Save file."),
  26. QCoreApplication::translate("main", "file"));
  27. parser.addOption(saveFileOption);
  28. QCommandLineOption primaryLabelOption(QStringList() << "pl" << "primary-label",
  29. QCoreApplication::translate("main", "Primary hand labelling attribute name."),
  30. QCoreApplication::translate("main", "name"));
  31. parser.addOption(primaryLabelOption);
  32. QCommandLineOption primaryLabelValueOption(QStringList() << "plv" << "primary-label-value",
  33. QCoreApplication::translate("main", "(Optional) Create a nominal primary labelling attribute. Ex. \"{fix,sacc,sp}\"."),
  34. QCoreApplication::translate("main", "name"),
  35. "");
  36. parser.addOption(primaryLabelValueOption);
  37. QCommandLineOption secondaryLabelOption(QStringList() << "sl" << "secondary-label",
  38. QCoreApplication::translate("main", "(Optional) Secondary hand labelling attribute name."),
  39. QCoreApplication::translate("main", "name"));
  40. parser.addOption(secondaryLabelOption);
  41. QCommandLineOption secondaryLabelValueOption(QStringList() << "slv" << "secondary-label-value",
  42. QCoreApplication::translate("main", "(Optional) Create a nominal secondary labelling attribute. Ex. \"{fix,sacc,sp}\"."),
  43. QCoreApplication::translate("main", "name"),
  44. "");
  45. parser.addOption(secondaryLabelValueOption);
  46. QCommandLineOption fullScreenOption(QStringList() << "f" << "full-screen",
  47. QCoreApplication::translate("main", "Start window in full screen mode."));
  48. parser.addOption(fullScreenOption);
  49. QCommandLineOption fovFileOption(QStringList() << "fov" << "field-of-view",
  50. QCoreApplication::translate("main", "Convert Equirectangular video to Field Of View"));
  51. parser.addOption(fovFileOption);
  52. QCommandLineOption headFileOption(QStringList() << "head" << "head-only-motion",
  53. QCoreApplication::translate("main", "Display only head motion in the equirectangular video"));
  54. parser.addOption(headFileOption);
  55. // parse arguments
  56. parser.process(app);
  57. MainWindow *pMainWindow;
  58. SetupValues setup;
  59. setup.gazeType = GazeType::EYE_PLUS_HEAD;
  60. if (parser.isSet("field-of-view"))
  61. setup.gazeType = GazeType::FOV;
  62. if (parser.isSet("head-only-motion"))
  63. setup.gazeType = GazeType::HEAD;
  64. if (parser.isSet("video-file") && parser.isSet("arff-file") && parser.isSet("save-file") && parser.isSet("primary-label"))
  65. {
  66. setup.arffFile = parser.value(arffFileOption);
  67. setup.saveFile = parser.value(saveFileOption);
  68. setup.videoFile = parser.value(videoFileOption);
  69. setup.primaryLabel = parser.value(primaryLabelOption);
  70. setup.primaryLabelValues = parser.value(primaryLabelValueOption);
  71. setup.secondaryLabel = parser.value(secondaryLabelOption);
  72. setup.secondaryLabelValues = parser.value(secondaryLabelValueOption);
  73. pMainWindow = new MainWindow(setup);
  74. }
  75. else
  76. pMainWindow = new MainWindow;
  77. if (parser.isSet(fullScreenOption))
  78. pMainWindow->showFullScreen();
  79. else
  80. pMainWindow->show();
  81. return app.exec();
  82. }