opencv图像处理:CommandLineParser类

简介: 看到有几本新的opencv书出来,梳理一下之前没看到过的知识: CommandLineParser类:可以帮助管理需要输入的命令行参数 CommandLineParser的构造函数为: CommandLineParser parser(argc,argv,keys):...

看到有几本新的opencv书出来,梳理一下之前没看到过的知识:
CommandLineParser类:可以帮助管理需要输入的命令行参数
CommandLineParser的构造函数为:
CommandLineParser parser(argc,argv,keys):其中前2个参数是命令行传过来的,第3个就是刚刚定义的keys了;
第三个参数keys可以定义为如下:
const char* keys =
{
“{help h usage ? | | print this message}”
“{@video | | Video file ,if not defined try tp use webcamera }”
};
每一行都有这种模式:
{ name_param | default_value | description}
name_param 前面可以带有@,这样定义了这个参数的默认输入值,可以使用多个name_param
CommandLineParser类包含一些方法:
.has方法检查参数是否存在,这在这个定义的keys中检查用户是否添加——usage或者?参数
.printMessage可以显示所有描述参数

.get<typename>(parameterName)

可以访问和读取任意输入的参数
.printErrors() 用来打印错误

关于CommandLineParser类还可以看下面几篇博客:
http://blog.csdn.net/yzhang6_10/article/details/51074305
http://www.cnblogs.com/tornadomeet/archive/2012/04/15/2450505.html
代码:

#include<iostream>
#include<string>
#include<sstream>
using namespace std;

#include<opencv2\core.hpp>
#include<opencv2\highgui.hpp>
#include<opencv2\opencv.hpp>

using namespace cv;

const char* keys =
{
    "{help h usage ? | | print this message}"
    "{@video | | Video file ,if not defined try tp use webcamera }"
};

int main(int argc,const char** argv)
{
    CommandLineParser parser(argc,argv,keys);
    parser.about("Chapter 2. v1.0.0");
    if (parser.has("help"))
    {
        parser.printMessage();
        return 0;
    }
    String videoFile = parser.get<String>(0);
    if (!parser.check())
    {
        parser.printErrors();
        return 0;
    }

    VideoCapture cap;
    if (videoFile != "")
    {
        cap.open(videoFile);
    }
    else
    {
        cap.open(0);
    }
    if (!cap.isOpened())
    {
        return -1;
    }
    namedWindow("video", 1);
    for (;;)
    {
        Mat frame;
        cap >> frame;
        imshow("video", frame);
        if (waitKey(30) >= 0)
        {
            break;
        }
    }
    cap.release();

    return 0;
}

这是一个打开摄像头代码,之前用了一下CommandLineParser类
运行结果:
这里写图片描述

目录
相关文章
|
3月前
|
算法 计算机视觉
基于qt的opencv实时图像处理框架FastCvLearn实战
本文介绍了一个基于Qt的OpenCV实时图像处理框架FastCvLearn,通过手撕代码的方式详细讲解了如何实现实时人脸马赛克等功能,并提供了结果展示和基础知识回顾。
110 7
基于qt的opencv实时图像处理框架FastCvLearn实战
|
7月前
|
openCL 开发工具 C语言
OpenCV 图像处理学习手册:6~7
OpenCV 图像处理学习手册:6~7
153 0
|
7月前
|
存储 编解码 算法
OpenCV 图像处理学习手册:1~5
OpenCV 图像处理学习手册:1~5
81 0
|
7月前
|
人工智能 Linux API
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
106 0
|
2月前
|
机器学习/深度学习 算法 计算机视觉
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
75 2
WK
|
4月前
|
计算机视觉 Python
如何使用OpenCV进行基本图像处理
使用OpenCV进行基本图像处理包括安装OpenCV,读取与显示图像,转换图像颜色空间(如从BGR到RGB),调整图像大小,裁剪特定区域,旋转图像,以及应用图像滤镜如高斯模糊等效果。这些基础操作是进行更复杂图像处理任务的前提。OpenCV还支持特征检测、图像分割及对象识别等高级功能。
WK
51 4
|
7月前
|
人工智能 计算机视觉 Python
【OpenCV】计算机视觉图像处理基础知识(上)
【OpenCV】计算机视觉图像处理基础知识(上)
|
7月前
|
算法 计算机视觉
【OpenCV】计算机视觉图像处理基础知识(下)
【OpenCV】计算机视觉图像处理基础知识(下)
|
7月前
|
缓存 算法 计算机视觉
OpenCV图像处理-视频分割静态背景-MOG/MOG2/GMG
1.概念介绍 视频背景扣除原理:视频是一组连续的帧(一幅幅图组成),帧与帧之间关系密切(GOP/group of picture),在GOP中,背景几乎是不变的,变的永远是前景。
293 0
|
7月前
|
机器学习/深度学习 算法 Linux
使用OpenCV在Python中进行图像处理
使用OpenCV在Python中进行图像处理