[学习opencv]opencv CommandLineParser类功能解释 参数交互 keys指针

本文介绍了OpenCV中的CommandLineParser类,它简化了命令行参数的处理。通过使用该类,用户可以在VS中直接运行程序而无需通过命令行,且能方便地修改输入格式。文章详细讲解了类的构造函数、get方法、has方法和check方法,并给出了使用示例。
摘要由CSDN通过智能技术生成

CommandLineParser这个类,那么这个类到底有什么作用呢,从命名大概可以猜出这是个命令行解析类。因为我们知道opencv是一个开源库,所以其很少有图形操作方面的api,基本上还是基于命令行执行的。那么这个类的出现主要是方便用户在命令行使用过程中减少工作量。

    大概可以看出来用这个类的好处就是很方便,因为以前版本没这个类时,如果要运行带参数的.exe,必须在命令行中输入文件路径以及各种参数,并且输入的参数格式要与代码中的if语句判断内容格式一样,一不小心就输错了,很不方便。另外如果想要更改输入格式的话在主函数文件中要相应更改很多地方。现在有了这个类,只需要改keys里面的内容就可以了,并且运行时可以直接在vs下用F5,不需要cmd命令行带参运行。最后这个类封装了很多函数,可以直接用,只不过这个本来就是类结构的优点。

CommandLineParser类说明

class CV_EXPORTS CommandLineParser
{
public:
 
	/*
	* 函数功能:构造函数
	* 参数:
	*   [in]     argc        main函数中的第一参数,即运行程序中获得指令的个数
	*   [in]     argv        main函数中的第二个参数,即运行程序中指令的内容
	*   [in]     key_map     当启动程序是没有输入任何指令,则使用key_map中默认的指指令。
	* 备注:
	*   key_map中的格式:
	*       "{    s|  123asd       |string parameter}
	*        {    d|  100          |digit parameter }
	*        {   @c|  false        |without camera  }
	*        {    1|  some text    |help            }
	*        {    2|  333          |another help    }"
	*参数or指令名称|指令or参数内容 |指令说明
	*
	*
	*  运行程序输入指令的方式如下:(例如程序名称为extest.exe)
	*  extest.exe -s=123asdd -d=1000 -@c=10
	*  注意:指令名称前面需要加一个“-”,或“--”。当输入指令后面没有参数,默认为true
	*       另外,前面加@的指令可以不输入指令名称,直接设置指令内容即可。
	*       没有输入的指令,则使用key_map中的默认值
	*/
	CommandLineParser(int argc, const char* const argv[], const String& keys);
  
	CommandLineParser(const CommandLineParser& parser);
 
 	CommandLineParser& operator = (const CommandLineParser& parser);
 
 	~CommandLineParser();
 
 
	String getPathToApplication() const;
 
	/*
	* 函数功能:获得指令名称的参数值
	* 参数:
	*   [in]     name            指令名称,注意此处不要加"-"
	*   [in]     space_delete    此参数默认为true,把参数内容中的头尾的空格去掉。
	*/
	template <typename T>
	T get
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值