本文主要是介绍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/
这篇关于OpenCV4探索学习:CommandLineParser类的使用说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!