command_line_parser.rst 2.38 KB

Command Line Parser

CommandLineParser

The CommandLineParser class is designed for command line arguments parsing

The sample below demonstrates how to use CommandLineParser:

CommandLineParser parser(argc, argv, keys);
parser.about("Application name v1.0.0");

if (parser.has("help"))
{
    parser.printMessage();
    return 0;
}

int N = parser.get<int>("N");
double fps = parser.get<double>("fps");
String path = parser.get<String>("path");

use_time_stamp = parser.has("timestamp");

String img1 = parser.get<String>(0);
String img2 = parser.get<String>(1);

int repeat = parser.get<int>(2);

if (!parser.check())
{
    parser.printErrors();
    return 0;
}

Syntax:

const String keys =
    "{help h usage ? |      | print this message   }"
    "{@image1        |      | image1 for compare   }"
    "{@image2        |      | image2 for compare   }"
    "{@repeat        |1     | number               }"
    "{path           |.     | path to file         }"
    "{fps            | -1.0 | fps for output video }"
    "{N count        |100   | count of objects     }"
    "{ts timestamp   |      | use time stamp       }"
    ;

Use:

# ./app -N=200 1.png 2.jpg 19 -ts

# ./app -fps=aaa
ERRORS:
Exception: can not convert: [aaa] to [double]