OpenCV: 从摄像头中读取

从摄像头中读取

OpenCV: 从摄像头中读取

#include <iostream>
#include <opencv2/opencv.hpp>
//argc: argument count 程序传送给main函数的命令行参数的总个数. 当传给main只有一个参数时,即argc=1,表示只有一个程序名称,这个名称存储在argv[0]中
//argv: argument vector 字符串数组,该数组用来存放指向字符串的指针,下标从0开始
//argv[0]: 指向程序运行的路径名称
//argv[1]: 路径后的第一个字符串
//argv[2]: 路径后的第二个字符串
//argv[argc]=NULL
int main(int argc, char* argv[]) {
    //创建窗口
    cv::namedWindow("Example",cv::WINDOW_AUTOSIZE);
    //实例化视频读取结构
    cv::VideoCapture cap;
    //如果命令行参数个数为1
    if (argc==1)
    //视频读取结构打开摄像头
        cap.open(0);	//index=0
    //如果命令行参数个数不止1个
    else
    //视频读取结构打开视频文件
        cap.open(argv[1]);
    //判断视频结构打开失败
    if (!cap.isOpened()) {
        //输出错误信息,返回-1
        std::cerr << "Couldn't open capture." << std::endl;
        return -1;
    }
    //实例化保存视频帧结构frame
    cv::Mat frame;
    //循环读取视频帧
    for(;;) {
        //视频读取结构读取一帧
        cap >> frame;
        //判断帧空,退出循环
        if (frame.empty())
            break;
        //显示帧
        cv::imshow("Example",frame);
        //显示帧后等待33ms,如此段时间内无键盘事件,则退出循环
        if (cv::waitKey(33)>=0)
            break;
    }
    return 0;
}

OpenCV: 从摄像头中读取

上一篇:QUdpSocket服务端接收数据说明(非阻塞)


下一篇:C语言 main 函数参数 main(int argc, char *argv[]) - C语言零基础入门教程