Designed for command line parsing. More...
#include <opencv2/core/utility.hpp>
Public Member Functions | |
CommandLineParser (const CommandLineParser &parser) | |
Copy constructor. | |
CommandLineParser (int argc, const char *const argv[], const String &keys) | |
Constructor. | |
~CommandLineParser () | |
Destructor. | |
void | about (const String &message) |
Set the about message. | |
bool | check () const |
Check for parsing errors. | |
template<typename T > | |
T | get (const String &name, bool space_delete=true) const |
Access arguments by name. | |
template<typename T > | |
T | get (int index, bool space_delete=true) const |
Access positional arguments by index. | |
String | getPathToApplication () const |
Returns application path. | |
bool | has (const String &name) const |
Check if field was provided in the command line. | |
CommandLineParser & | operator= (const CommandLineParser &parser) |
Assignment operator. | |
void | printErrors () const |
Print list of errors occurred. | |
void | printMessage () const |
Print help message. | |
Protected Member Functions | |
void | getByIndex (int index, bool space_delete, Param type, void *dst) const |
void | getByName (const String &name, bool space_delete, Param type, void *dst) const |
Protected Attributes | |
Impl * | impl |
Detailed Description
Designed for command line parsing.
The sample below demonstrates how to use CommandLineParser:
Keys syntax
The keys parameter is a string containing several blocks, each one is enclosed in curly braces and describes one argument. Each argument contains three parts separated by the |
symbol:
- argument names is a space-separated list of option synonyms (to mark argument as positional, prefix it with the
@
symbol) - default value will be used if the argument was not provided (can be empty)
- help message (can be empty)
For example:
Note that there are no default values for help
and timestamp
so we can check their presence using the has()
method. Arguments with default values are considered to be always present. Use the get()
method in these cases to check their actual value instead.
String keys like get<String>("@image1")
return the empty string ""
by default - even with an empty default value. Use the special <none>
default value to enforce that the returned string must not be empty. (like in get<String>("@image2")
)
Usage
For the described keys:
- Examples
- fld_lines.cpp, modules/shape/samples/shape_example.cpp, samples/cpp/camshiftdemo.cpp, samples/cpp/connected_components.cpp, samples/cpp/contours2.cpp, samples/cpp/convexhull.cpp, samples/cpp/cout_mat.cpp, samples/cpp/create_mask.cpp, samples/cpp/demhist.cpp, samples/cpp/distrans.cpp, samples/cpp/edge.cpp, samples/cpp/facedetect.cpp, samples/cpp/ffilldemo.cpp, samples/cpp/filestorage.cpp, samples/cpp/fitellipse.cpp, samples/cpp/grabcut.cpp, samples/cpp/image_alignment.cpp, samples/cpp/laplace.cpp, samples/cpp/lkdemo.cpp, samples/cpp/lsd_lines.cpp, samples/cpp/pca.cpp, samples/cpp/peopledetect.cpp, samples/cpp/polar_transforms.cpp, samples/cpp/segment_objects.cpp, samples/cpp/train_HOG.cpp, samples/cpp/tutorial_code/Histograms_Matching/MatchTemplate_Demo.cpp, samples/cpp/tutorial_code/ImgProc/Morphology_1.cpp, samples/cpp/tutorial_code/ImgProc/Morphology_2.cpp, samples/cpp/tutorial_code/ImgTrans/Sobel_Demo.cpp, samples/cpp/tutorial_code/features2D/Homography/decompose_homography.cpp, samples/cpp/tutorial_code/features2D/Homography/homography_from_camera_displacement.cpp, samples/cpp/tutorial_code/features2D/Homography/pose_from_homography.cpp, samples/cpp/tutorial_code/ml/introduction_to_pca/introduction_to_pca.cpp, samples/cpp/tutorial_code/photo/non_photorealistic_rendering/npr_demo.cpp, samples/cpp/warpPerspective_demo.cpp, samples/cpp/watershed.cpp, samples/dnn/classification.cpp, samples/dnn/colorization.cpp, samples/dnn/object_detection.cpp, samples/dnn/openpose.cpp, samples/dnn/segmentation.cpp, samples/dnn/text_detection.cpp, samples/tapi/hog.cpp, and samples/tapi/squares.cpp.
Constructor & Destructor Documentation
◆ CommandLineParser() [1/2]
cv::CommandLineParser::CommandLineParser | ( | int | argc, |
const char *const | argv[], | ||
const String & | keys | ||
) |
Constructor.
Initializes command line parser object
- Parameters
-
argc number of command line arguments (from main()) argv array of command line arguments (from main()) keys string describing acceptable command line parameters (see class description for syntax)
◆ CommandLineParser() [2/2]
cv::CommandLineParser::CommandLineParser | ( | const CommandLineParser & | parser | ) |
Copy constructor.
◆ ~CommandLineParser()
cv::CommandLineParser::~CommandLineParser | ( | ) |
Destructor.
Member Function Documentation
◆ about()
void cv::CommandLineParser::about | ( | const String & | message | ) |
Set the about message.
The about message will be shown when printMessage is called, right before arguments table.
◆ check()
bool cv::CommandLineParser::check | ( | ) | const |
Check for parsing errors.
Returns false if error occurred while accessing the parameters (bad conversion, missing arguments, etc.). Call printErrors to print error messages list.
- Examples
- samples/dnn/classification.cpp.
◆ get() [1/2]
|
inline |
Access arguments by name.
Returns argument converted to selected type. If the argument is not known or can not be converted to selected type, the error flag is set (can be checked with check).
For example, define:
Call:
Access:
- Parameters
-
name name of the argument space_delete remove spaces from the left and right of the string
- Template Parameters
-
T the argument will be converted to this type if possible
- Note
- You can access positional arguments by their
@
-prefixed name:parser.get<String>("@image");
◆ get() [2/2]
|
inline |
Access positional arguments by index.
Returns argument converted to selected type. Indexes are counted from zero.
For example, define:
Call:
Access arguments:
- Parameters
-
index index of the argument space_delete remove spaces from the left and right of the string
- Template Parameters
-
T the argument will be converted to this type if possible
◆ getByIndex()
|
protected |
◆ getByName()
|
protected |
◆ getPathToApplication()
String cv::CommandLineParser::getPathToApplication | ( | ) | const |
Returns application path.
This method returns the path to the executable from the command line (argv[0]
).
For example, if the application has been started with such a command:
this method will return ./bin
.
◆ has()
bool cv::CommandLineParser::has | ( | const String & | name | ) | const |
Check if field was provided in the command line.
- Parameters
-
name argument name to check
- Examples
- fld_lines.cpp, samples/dnn/classification.cpp, and samples/tapi/hog.cpp.
◆ operator=()
CommandLineParser & cv::CommandLineParser::operator= | ( | const CommandLineParser & | parser | ) |
Assignment operator.
◆ printErrors()
void cv::CommandLineParser::printErrors | ( | ) | const |
◆ printMessage()
void cv::CommandLineParser::printMessage | ( | ) | const |
Print help message.
This method will print standard help message containing the about message and arguments description.
- See also
- about
Member Data Documentation
◆ impl
|
protected |
The documentation for this class was generated from the following file:
- opencv2/core/utility.hpp