VS2012下配置opencv+directshow(CCameraDS),支持多摄像头 转载自叶科忠's Blog

本文介绍了在OpenCV中实现多摄像头支持的过程。作者首先解决了VS2012与OpenCV的配置问题,然后详细记录了使用DirectShow进行多摄像头支持遇到的问题及其解决方案,包括如何处理缺失的DirectShow组件和头文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学习 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 类 的例程一样使用这个类了。

1. 功能概述 利用普通的USB摄像头获取动态图像实时的检测出图像中的人脸并用红框框出。 2. 程序清单 1)CameraDS.cpp bool CCameraDS::OpenCamera(int nCamID, bool bDisplayProperties=true, int nWidth=320, int nHeight=240); 打开摄像头,nCamID指定打开哪个摄像头,取值可以为0,1,2,... bDisplayProperties指示是否自动弹出摄像头属性页 nWidth和nHeight设置的摄像头的宽和高,如果摄像头不支持所设定的宽度和高度,则返回false void CloseCamera(); 关闭摄像头,析构函数会自动调用这个函数 static int CameraCount(); 返回摄像头的数目 可以不用创建CCameraDS实例,采用int c=CCameraDS::CameraCount();得到结果。 static int CCameraDS::CameraName(int nCamID, char* sName, int nBufferSize); 根据摄像头的编号返回摄像头的名字 nCamID: 摄像头编号 sName: 用于存放摄像头名字的数组 nBufferSize: sName的大小 可以不用创建CCameraDS实例,采用CCameraDS::CameraName();得到结果。 int GetWidth(); 返回图像宽度 int GetHeight(); 返回图像高度 IplImage * QueryFrame(); 抓取一帧,返回的IplImage不可手动释放! 返回图像数据的为RGB模式的Top-down(第一个字节为左上角像素),即IplImage::origin=0(IPL_ORIGIN_TL) 2)haarcascade.cpp CvHaarClassifierCascade* load_object_detector( const char* cascade_path ); 用于从文件中装载训练好的利用哈尔特征的级联分类器(网上下的) cascade_path:文件路径
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值