Skip to content
Snippets Groups Projects
main.cpp 2.49 KiB
#include <QApplication>
#include <string>
#include "bswindow.h"
// #include "scanwindow.h"


int main (int argc, char *argv[])
{
  int val = 0;
  int imageName = 0;
  bool testing = false;
  QApplication app (argc, argv);

/*
  if (argc == 2 && string (argv[1]) == string ("scans"))
  {
    ScanWindow sw (&val);
    sw.setWindowTitle ("Scans");
    sw.show ();
    return app.exec ();
  }
*/

  BSWindow window (&val);   // val : necessary argument !
  for (int i = 1; i < argc; i++)
  {
    if (string(argv[i]).at(0) == '-')
    {
      if (string(argv[i]) == string ("-profile")) window.toggleProfWindow ();
      else if (string(argv[i]) == string ("-accu")) window.toggleAccuWindow ();
      else if (string(argv[i]) == string ("-seg")) window.toggleSegWindow ();
      else if (string(argv[i]) == string ("-idet")) window.toggleIdetWindow ();
      // Test command : time ./Seg -test ../Images/couloir.jpg
      else if (string(argv[i]) == string ("-test")) testing = true;
      else if (string(argv[i]) == string ("-sobel3x3"))
        window.useGradient (VMap::TYPE_SOBEL_3X3);
      else if (string(argv[i]) == string ("-sobel5x5"))
        window.useGradient (VMap::TYPE_SOBEL_5X5);
      else if (string(argv[i]) == string ("-tophat"))
        window.useGradient (VMap::TYPE_TOP_HAT);
      else if (string(argv[i]) == string ("-blackhat"))
        window.useGradient (VMap::TYPE_BLACK_HAT);
      else if (string(argv[i]) == string ("-morpho"))
        window.useGradient (VMap::TYPE_MORPHO);
      else if (string(argv[i]) == string ("-fulltophat"))
        window.useGradient (VMap::TYPE_FULL_TOP_HAT);
      else if (string(argv[i]) == string ("-fullblackhat"))
        window.useGradient (VMap::TYPE_FULL_BLACK_HAT);
      else if (string(argv[i]) == string ("-fullmorpho"))
        window.useGradient (VMap::TYPE_FULL_MORPHO);
      else
      {
        int l = string (argv[i]).length ();
        for (int j = 1; j < l; j++)
        {
          char carac = string(argv[i]).at(j);
          if (carac == 'p') window.toggleProfWindow ();
          else if (carac == 'a') window.toggleAccuWindow ();
          else if (carac == 's') window.toggleSegWindow ();
          else if (carac == 'i') window.toggleIdetWindow ();
        }
      }
    }
    else imageName = i;
  }
  if (imageName != 0) window.setFile (QString (argv[imageName]));
  else window.setFile (QString ("../couloir.gif"));
  if (testing)
  {
    window.runTest ();
    return (EXIT_SUCCESS);
  }
  window.runOptions (); 
  window.show ();
  return app.exec ();
}