zoukankan      html  css  js  c++  java
  • Opencv VideoCapture实时捕捉摄像头信息

    #include "opencv2/highgui/highgui.hpp"
    #include <iostream>
    
    using namespace cv;
    using namespace std;
    
    int main(int argc, char* argv[])
    {
        VideoCapture cap(0); // open the video camera no. 0
    
        if (!cap.isOpened())  // if not success, exit program
        {
            cout << "Cannot open the video cam" << endl;
            return -1; 
        }
    
       double dWidth = cap.get(CV_CAP_PROP_FRAME_WIDTH); //get the width of frames of the video
       double dHeight = cap.get(CV_CAP_PROP_FRAME_HEIGHT); //get the height of frames of the video
    
        cout << "Frame size : " << dWidth << " x " << dHeight << endl;
    
        namedWindow("MyVideo",CV_WINDOW_AUTOSIZE); //create a window called "MyVideo"
    
        while (1)
        {
            Mat frame;
    
            //bool bSuccess = cap.read(frame); // read a new frame from video
    
            // if (!bSuccess) //if not success, break loop
            //{
            //     cout << "Cannot read a frame from video stream" << endl;
            //     break;
            //}
            cap>>frame; 
            imshow("MyVideo", frame); //show the frame in "MyVideo" window
    
            if (waitKey(30) == 27) //wait for 'esc' key press for 30ms. If 'esc' key is pressed, break loop
           {
                cout << "esc key is pressed by user" << endl;
                break; 
           }
        }
        return 0;
    
    }

    另外注明下,本人曾经想用手机来充当摄像头,利用DroidCam软件,但是貌似Opencv不支持这种方式,虽然运行代码后能够找到摄像头,但是始终无法正常显示图像,后来换了一个摄像头就完全可以正常显示了。不知道有哪位大大给解释下

  • 相关阅读:
    Java类变量和成员变量初始化过程
    Linux命令学习笔记
    gitlab本地部署方法(ubuntu16.04+gitlab9.5.5)
    Hanoi塔
    求递归算法时间复杂度:递归树
    最大堆/最小堆
    Matlab中plot基本用法
    这是一篇叼炸天的博客
    c++ static理解
    经典排序算法+文件操作~c语言实现
  • 原文地址:https://www.cnblogs.com/xlturing/p/3581044.html
Copyright © 2011-2022 走看看