OpenCV: 同时打开两个摄像头

 时间:2024-10-27 11:54:16

1、硬件设施:双目摄像头支持:一条usb接口的两个摄像头,和两条usb的两个摄像头。

OpenCV: 同时打开两个摄像头

2、双目摄像头的读取,有的用directshow来实现。这里使用opencv直接进行双目摄像头的读取。

OpenCV: 同时打开两个摄像头

3、代码如下:#include <opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;int main(){ //initialize and allocate memory to load the video stream from camera VideoCapture camera0(1); camera0.set(CV_CAP_PROP_FRAME_WIDTH,320); camera0.set(CV_CAP_PROP_FRAME_HEIGHT,240); VideoCapture camera1(0); camera1.set(CV_CAP_PROP_FRAME_WIDTH,320); camera1.set(CV_CAP_PROP_FRAME_HEIGHT,240); if( !camera0.isOpened() ) return 1; if( !camera1.isOpened() ) return 1; while(true) { //grab and retrieve each frames of the video sequentially Mat3b frame0; camera0 >> frame0; Mat3b frame1; camera1 >> frame1; imshow("Video0", frame0); imshow("Video1", frame1);// std::cout << frame1.rows() << std::endl; //wait for 40 milliseconds int c = waitKey(40); //exit the loop if user press "Esc" key (ASCII value of "Esc" is 27) if(27 == char(c)) break; } return 0;}

4、注释:分辨率为320*240,能够正常显示,分辨率太高,只有一个摄像头能正常显示,另一个显示灰度图。原因是USB的带宽有限。摄像头的序号在opencv中是采用降序的形式,才能正确读取多个摄像头,否则就不能。

OpenCV: 同时打开两个摄像头

5、VideoCapture类有两种用法,一种是VideoCapture(const string& filename)用来打开视频文件,一种是VideoCapture(int device)用来打开设备。

6、isOpened函数用来检测VideoCapture类是否打开成功。C++版本的OpenCV有一个明显的好处,就是不需要释放操作(不论是视频还是图片),VideoCapture类的析构函数会自动帮你完成。

  • 如何在vs中修改QT窗口图标和名称?
  • VS2013,VS2015各版本如何打开graphics.h头文件
  • 神经网络入门——生成随机图片
  • 如何使用NetBeans创建Java GUI 窗体应用程序
  • Loadrunner 11 run-time settings运行时设置
  • 热门搜索
    庆十一手抄报 小学保护环境手抄报 教师节手抄报花边 手抄报版面设计图花 国庆70周年手抄报内容 向英雄致敬手抄报 鲁迅的手抄报 大自然的启示手抄报 法制伴我行手抄报 春的手抄报