101 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| Command Line Parser
 | |
| ===================
 | |
| 
 | |
| .. highlight:: cpp
 | |
| 
 | |
| CommandLineParser
 | |
| -----------------
 | |
| .. ocv:class:: CommandLineParser
 | |
| 
 | |
| The CommandLineParser class is designed for command line arguments parsing
 | |
| 
 | |
| 
 | |
|     .. ocv:function:: CommandLineParser::CommandLineParser( int argc, const char* const argv[], const String& keys )
 | |
| 
 | |
|         :param argc:
 | |
|         :param argv:
 | |
|         :param keys:
 | |
| 
 | |
|     .. ocv:function:: template<typename T> T CommandLineParser::get<T>(const String& name, bool space_delete = true)
 | |
| 
 | |
|         :param name:
 | |
|         :param space_delete:
 | |
| 
 | |
|     .. ocv:function:: template<typename T> T CommandLineParser::get<T>(int index, bool space_delete = true)
 | |
| 
 | |
|         :param index:
 | |
|         :param space_delete:
 | |
| 
 | |
|     .. ocv:function:: bool CommandLineParser::has(const String& name)
 | |
| 
 | |
|         :param name:
 | |
| 
 | |
|     .. ocv:function:: bool CommandLineParser::check()
 | |
| 
 | |
| 
 | |
|     .. ocv:function:: void CommandLineParser::about( const String& message )
 | |
| 
 | |
|         :param message:
 | |
| 
 | |
|     .. ocv:function:: void CommandLineParser::printMessage()
 | |
| 
 | |
|     .. ocv:function:: void CommandLineParser::printErrors()
 | |
| 
 | |
|     .. ocv:function:: String CommandLineParser::getPathToApplication()
 | |
| 
 | |
| 
 | |
| 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]
 | 
