zoukankan      html  css  js  c++  java
  • OpenCV show two cameras 同时显示两个摄像头

    用OpenCV同时显示两个摄像头的内容的代码如下:

    #include <iostream>
    #include <stdio.h>
    #include <tchar.h>
    #include <cv.h>
    #include <cvaux.h>
    #include <highgui.h>
    
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[]) {
        CvCapture* cam0 = cvCaptureFromCAM(CV_CAP_DSHOW + 0);
        if(!cam0)
        {
            fprintf(stderr, "Could not initialize opening of Camera 0..
    ");
            system("Pause");
            return -1;
        }
        printf("cam0 initialized
    ");
        double height0 = cvGetCaptureProperty(cam0, CV_CAP_PROP_FRAME_HEIGHT);
        double width0 = cvGetCaptureProperty(cam0, CV_CAP_PROP_FRAME_WIDTH);
        cvNamedWindow("Camera 0",CV_WINDOW_AUTOSIZE); //create a window called "Camera 0"
    
        CvCapture* cam1 = cvCaptureFromCAM(CV_CAP_DSHOW + 1);
        if(!cam1)
        {
            fprintf(stderr, "Could not initialize opening of Camera 1..
    ");
            system("Pause");
            return -1;
        }
        printf("cam1 initialized
    ");
        double height1 = cvGetCaptureProperty(cam1, CV_CAP_PROP_FRAME_HEIGHT);
        double width1 = cvGetCaptureProperty(cam1, CV_CAP_PROP_FRAME_WIDTH);
        cvNamedWindow("Camera 1",CV_WINDOW_AUTOSIZE); //create a window called "Camera 1"
    
        while (1)
        {
            IplImage *cam0Frame = cvQueryFrame(cam0);
            if (cam0Frame) {
                cvShowImage("Camera 0", cam0Frame);
            }
            IplImage *cam1Frame = cvQueryFrame(cam1);
            if (cam1Frame) {
                cvShowImage("Camera 1", cam1Frame);
            }
            if (cvWaitKey(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; 
            }
        }
    
        cvReleaseCapture(&cam0);
        cvReleaseCapture(&cam1);
        cvDestroyWindow("Camera 0");
        cvDestroyWindow("Camera 1");
        return 0;
    }

    如果只想打开一个摄像头,可以参见我的另一篇博客OpenCV Open Camera 打开摄像头

  • 相关阅读:
    Django项目:CMDB(服务器硬件资产自动采集系统)--01--01CMDB获取服务器基本信息
    rabbitmq 实现多个消费队列
    mssql附加的数据库查询的时候没有搜索权限
    mvc 返回json格式时间格式化
    HighChat动态绑定数据 数据后台绑定(四)
    双向绑定
    v-bind 属性绑定
    v-on 事件触发
    v-text和v-html绑定数据显示
    插值表达式
  • 原文地址:https://www.cnblogs.com/grandyang/p/4302501.html
Copyright © 2011-2022 走看看