VS2012下配置opencv+directshow(CCameraDS),支持多摄像头

最近学习 OpenCV,研究智能监控神马的。简单实现了运动跟踪后,开始着手自己的摄像头类及多摄像头的研究(实际项目环境可能是8个甚至16个摄像头)。

前期 VS2012 + OpenCV 的配置方法,可以参考 Win7下OpenCV2.4.3结合VS2012的配置 等文章,网上资料较多,本文就不详述了。

问题主要发生在调用多摄像头上,搜索一番,发现只在 OpenCV 中文网站 存在一个使用 DirectShow 实现多摄像头支持的 CCameraDS 类。下载并添加到项目里后,发现压缩包里并没有其所说的“集成了DirectShow,勿需安装庞大的DirectX/Platform SDK”。真糟糕,只能自己找了,又是一番搜索,发现 DirectShow 这玩意儿似乎已经开始被微软给淘汰了,最后存在是在多年前的 DirectX 9.0b 包里,可以在这里下载到:DirectX9.0b SDK下载地址及安装说明

在下载过程中,我发现 VS2012旗舰版是自带了 SDK 的,在 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include。

如果你也有这玩意儿,那就可以直接在项目属性里 Additional Include Directories 添加 $(FrameworkSDKDir)Include,Additional Library Directories 添加 $(FrameworkSDKDir)Lib。

完成之后,会发现任然无法 #include “qedit.h”,感情新的 SDK 里已经没了这头文件,也就相当于没了 DirectShow,加上便是,一番寻找后搞定,解决了一点小问题后(qedit.h 里还需包含一个头文件),我把它上传到了博客:点击下载

OK,现在,就能像 CCameraDS 类 的例程一样使用这个类了。