#include <opencv2/core/utility.hpp> // 引入OpenCV核心工具库
#include <iostream> // 引入标准输入输出流库
// 定义一个包含命令行参数的字符串
static const std::string keys =
"{ b build | | print complete build info }" // 定义参数b,显示完整的构建信息
"{ h help | | print this help }"; // 定义参数h,显示帮助信息
// 主函数,程序从这里开始执行
int main(int argc, const char* argv[])
{
// 创建命令行解析器对象
cv::CommandLineParser parser(argc, argv, keys);
// 设置程序的说明信息
parser.about("This sample outputs OpenCV version and build configuration.");
if (parser.has("help")) // 如果请求帮助信息
{
parser.printMessage(); // 打印帮助信息
}
else if (!parser.check()) // 检查参数解析是否有误
{
parser.printErrors(); // 如果有误,则打印错误信息
}
else if (parser.has("build")) // 如果请求构建信息
{
// 打印OpenCV的构建信息
std::cout << cv::getBuildInformation() << std::endl;
}
else // 如果没有特殊请求
{
// 打印欢迎语信息和OpenCV版本号
std::cout << "Welcome to OpenCV " << CV_VERSION << std::endl;
}
return 0; // 程序正常退出,返回0
}
这段代码的功能是基于OpenCV库创建了一个简单的命令行解析器,可以通过命令行参数来执行不同的功能。
当命令行包含参数“build”时,程序将打印OpenCV的完整构建信息。
当命令行包含参数“help”时,程序将打印出帮助信息。
如果没有提供任何以上特定的参数,程序将打印一条欢迎信息以及使用的OpenCV版本号。
如果命令行参数存在问题,将通过标准错误流打印错误信息