机器视觉学习笔记(2)——基于DirectShow的多摄像头视频采集

这篇机器视觉学习笔记介绍了如何使用DirectShow在VS2010中配置和采集双目摄像头视频,解决了OpenCV在双摄像头采集上的问题。通过引入DirectShow SDK和特定的类,成功显示了两个摄像头的内容,并强调了确定摄像头输出压缩格式的重要性。
摘要由CSDN通过智能技术生成

机器视觉学习笔记(2)——基于DirectShow的多摄像头视频采集

标签: 机器视觉


1.为什么使用DirectShow

笔者使用的是两个USB摄像头,单摄像头视频采集使用OpenCV的VideoCapture类没有问题,但是双摄像头就有问题,一个正常,另外一个采集不到信息,显示一片灰色。网上有种解决方法是逆序打开摄像头,结果两个窗口是可以采集到视频信息,但是竟然是同一个摄像头的视频信息,无奈的只能使用DirectShow采集多摄像头视频信息。

先看看什么是DirectShow:

DirectShow 是 DirectX 的组件之一, DirectX 软件开发包是 Microsoft 提供的一套在 Windows平台上开发高性能图形、声音、输入、输出和网络游戏的编程接口。这其中,DirectShow提供了应用程序从适当的硬件中捕捉和预览音、视频的能力。数据源包括: VCR、 Camera、 TV Tuner、 Microphone 或其他的数据源。应用程序可以立刻显示捕捉的数据(预览),或是保存到一个文件中。

摄像头采集信息常用的软件AMCap就是基于DirectShow SDK编写的。查阅一下官方文档,感觉好难的样子,难道要新学一门“快过时”的技术吗?幸好于仕琪老师写了一个CCameraDS类,可直接返回IplImage,使用方便。

2.在VS2010中配置DirectShow并采集双目摄像头视频

  • 下载DirectShow相关文件,我已经共享在百度云盘,点击下载。解压以后copy到D:\opencv里(放在这里为了管理方便)
  • 在解决资源管理器中的项目名称处右键\属性\配置属性\VC++目录,引用目录中添加DirectShow的include文件夹,我添加的是D:\opencv\DirectShow\Include
  • 在引用目录下面有一个库目录,添加DirectShow的Lib文件夹,我添加的是D:\opencv\DirectShow\Lib;
  • 下载CCameraDS类相关文件,点击下载。解压以后把CameraDS.h,CameraDS.cpp复制到已经配置好OpenCV库的工程中,并添加到工程中。在解决资源管理器中,头文件和源文件分别右键\添加\现有项,把CCameraDS的头文件和源文件添加进去
  • main函数写入如下内容
    #include "stdafx.h"
    #include <iostream>
    #include <cv.h>
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    #include <math.h>
    #include <highgui.h>
    #include "CameraDS.h"
    
    using 
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值