OpenCV4探索学习:CommandLineParser类的使用说明

const char* keys =
{
	"{input |2.jpg| string |input image}"
	"{w|8|}{h|11|}"
	"{help||}"
}; //分别表示:简称|文件来源|文件值|帮助语句,可缺省	

int main(int argc, char** argv)
{
	CommandLineParser parser(argc, argv, keys);
	if (parser.has("help"))
	{
		cout << "Show Image!\n" << endl;
	}
	int nWidth = parser.get<int>("w");
	int nHeight = parser.get<int>("h");

	Mat src;
	src = imread(parser.get<String>("input"), IMREAD_COLOR);
	if (src.empty())
	{
		cout << "Could not open or find the image!\n" << endl;
		return -1;
	}
	parser.printMessage();
	imshow("1", src);
	waitKey(0);
	return 0;
}

1、构造函数------接收命令行输入的指令

2、get-----获得指定的参数的内容

3、has----在get之前可以先检查是否含有此指令

4、check---在使用这些参数之前,检查是否有解析错误的现象;

4、printMessage---打印该对象包含的信息;

目的:方便用户在命令行使用过程中减少工作量

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

参考:https://sophia0130.github.io/2018/05/08/CommandLineParse%E7%B1%BB/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值