【计算机视觉】opencv读取多个摄像头

标签(空格分隔): 【图像处理】


说明:今天蹭了机器视觉课程,讲到了stereopsis,立体视觉,讲到了关于通过多个摄像头获取object的depth信息的事情,因为想到从来没有试过打开多个摄像头进行过处理,这次进行了测试,这里小小记录一下。


opencv提供的VideoCapture可以很方便的打开视频、摄像头设备,而且直接输入对应的摄像头标号即可,或者视频的名字即可,一个open全部搞定,我通常喜欢用这个来类来获取图像数据。

下面是对应的详细代码:

// MultiCAM.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h" #include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cv.h>
using namespace std;
using namespace cv; int main(int argc, _TCHAR* argv[])
{
VideoCapture capture, capture1, capture2;
capture.open(0);capture1.open(1);capture2.open(2);
// Read options
//read_options(argc, argv, capture);
// Init camera
if (!capture.isOpened())
{
cout << "capture device 0 failed to open!" << endl;
return 1;
}
if (!capture1.isOpened())
{
cout << "capture device 1 failed to open!" << endl;
return 1;
}
if (!capture2.isOpened())
{
cout << "capture device 2 failed to open!" << endl;
return 1;
}
// Register mouse callback to draw the tracking box
namedWindow("0", CV_WINDOW_AUTOSIZE);
namedWindow("1", CV_WINDOW_AUTOSIZE);
namedWindow("2", CV_WINDOW_AUTOSIZE);
Mat frame;
Mat frame1;
Mat frame2;
while(capture.read(frame) && capture1.read(frame1) && capture2.read(frame2))
{
imshow("0", frame);
imshow("1", frame1);
imshow("2", frame2);
if (cvWaitKey(33) == 'q') { break; }
} waitKey();
return 0;
}

笔记本上自带的WEBCAM,外接了两个USB CAM,共三个摄像头,一般来说笔记本自带的WEB CAM应该对应的标号为0,之后是哪个USB接上的标号为1,以此类推。

可以在此工程上借助两个摄像头或者3个摄像头获取目标的深度信息的测试。


2015-11-12 笔记整理 张朋艺

【计算机视觉】opencv读取多个摄像头的更多相关文章

  1. opencv读取摄像头实时流代码

    opencv读取摄像头实时流代码: #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; ...

  2. C/C++ OpenCV读取视频与调用摄像头

    原文:http://blog.csdn.net/qq78442761/article/details/54173104 OpenCV通过VideoCapture类,来对视频进行读取,调用摄像头 读取视 ...

  3. 利用树莓派来安装opencv从而来调动摄像头工作(没有坑,超超自己试过)

    超超最近参加了学校里一位特别厉害的老师讲的课(两天,我就从一个小白然后了解了树莓派以及Arduino这些我之前都没有了解过的东西,由于结课的需要,我们需要自己设计一个创意以及完成作品)所以才有了这篇文 ...

  4. 基于opencv和mfc的摄像头采集代码(GOMFCTemplate2)

            编写带界面的图像处理程序,选择opencv+mfc是一种很好的选择:在读取摄像头数据方面,网上的方法很多,其中shiqiyu的camerads的方法是较好的.       基于现有资料 ...

  5. OpenCV3读取视频或摄像头

    我们可以利用OpenCV读取视频文件或者摄像头的数据,将其保存为图像,以用于后期处理.下面的实例代码展示了简单的读取和显示操作: // This is a demo introduces you to ...

  6. javacpp-opencv图像处理3:使用opencv原生方法遍历摄像头设备及调用(增加实时帧率计算方法)

    javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置.大小.粗度.翻转.平滑等操作 javaCV图像处理之2:实时视频添加图片水 ...

  7. 基于opencv和mfc的摄像头采集代码(GOMFCTemplate2)持续更新

            编写带界面的图像处理程序,选择opencv+mfc是一种很好的选择:在读取摄像头数据方面,网上的方法很多,其中shiqiyu的camerads的方法是较好的.       基于现有资料 ...

  8. 系统---添加一个相机的IP实现opencv读取rstp视频流

    系统---添加一个相机的IP实现opencv读取视频流 这里: 第一步,添加一个6段的相机IP地址:先ping 一个IP地址,ping通的是再用的IP,不可添加:ping不通的,添加IP到网络. 第二 ...

  9. 吴裕雄--天生自然python学习笔记:python用OpenCV 读取和显示图形

    Open CV 是一个开源.跨平台的计算机视觉库,它可 以在商业和研究领域中免费使用,目前已广泛应用于人机 互动.人脸识别.动作识别.运动跟踪等领域. 要识别特定的图像,最重要的是要有识别对象的特征 ...

随机推荐

  1. STM32串口接收中断——基于HAL库

    写在前面 最近需要使用一款STM32L4系列的芯片进行开发,需要学习使用HAL库.在进行串口中断使用的时候遇到了一些小麻烦,写下解决方案供大家参考. 1.UART相关的头文件引用错误 由于本人直接使用 ...

  2. 第四章 深入C#的string类

    一.String 类的常用方法 1.indexOf(); 获取指定字符串的位置,如果没有则返回-1 2.SubString();    截取字符串,参数1代表开始位置,参数2代表截取长度 3.ToLo ...

  3. MySQL 8.0.15 配置 MGR单主多从

    转载自:http://www.cnblogs.com/zhangzihong/p/10443526.html 一.简介 MySQL Group Replication(简称MGR)字面意思是mysql ...

  4. SQL Server遇到的错误和有用的tools

    1.The target principal name is incorrect.  Cannot generate SSPI context. 检查IIS的profile,可能是密码错误 2.The ...

  5. linux认识

    linux基础 根目录 文档扩展名 在Linux中,跟windows的扩展名.exe .bat.dll不同,只要在那十个字符中有x权限,这个档案就是可执行的, 但是,可被执行和执行成功是两回事,在Li ...

  6. CF1168C And Reachability 【构造,dp】

    题目链接:洛谷 题目描述:给出$n$个数$a_i$,若$i<j$且$a_i & a_j>0$,则$i$到$j$连一条有向边,$q$次询问,询问从$l$开始是否能到达$r$. 数据范 ...

  7. python常用模块(不定期更新)

    前言: 随着python开发项目越来越大,显然应该把不同功能的代码放到不同的.py文件里,每一个.py文件叫一个模块:模块分为(1)内置标准模块(2)第三方模块(3)自定义模块 这三种.这篇博客就是用 ...

  8. CodeForces - 999B Reversing Encryption

    B - Reversing Encryption A string s of length n can be encrypted by the following algorithm: iterate ...

  9. SpringMVC 指定404、500错误页面

    1.在web.xml中追加 <error-page> <error-code>404</error-code> <location>/404</l ...

  10. 【Robot Framework 项目实战 02】使用脚本生成统一格式的RF关键字

    背景 在微服务化的调用环境下,测试数据及接口依赖的维护是一个问题,因为依赖的接口和数据可能不在同一个服务下,而这相关的多个服务往往是不同人员来测试的. 因此为了节省沟通成本,避免关键字的重复冗余.所以 ...