关于opencv2.4.9和VS2013在windows7下无法打开摄像头的问题的扯淡解决办法

本文主要讲述了在Windows7环境下,使用OpenCV2.4.9和VS2013进行摄像头操作时遇到的两个主要问题及其解决方案。一是由于数据结构限制导致的'buffers do not match'错误,通过降低图像分辨率解决;二是由于驱动不匹配导致的摄像头无法打开,解决方法是利用DirectShow兼容性。通过调整代码,使用VideoCapture对象成功打开并处理摄像头视频流。
摘要由CSDN通过智能技术生成

               最近在做一个关于在摄像头中捕捉人脸并追踪人的眼睛的项目,在编程过程中发现始终无法打开摄像头。

               后来发现的问题主要集中在以下几个方面:

一 、opencv 的数据不足以支持获取的视频图像。

"buffers do not match"问题是捕捉的视频的图像的分辨率高于opencv 中的数据结构能够承载的最大的数据范围,所以导致虽然能够打开摄像头,但是显示出错,所以在debug时会报错。

     这种问题的解决 办法是在获取到frame后,对frame进行参数的重新设置,降低图像的分辨率,再显示图像,就没问题了。

二 、摄像头的驱动不匹配

      始终无法打开摄像头,也不报错。

     使用cvCaptureFromCam(-1)始终返回为NULL.或者使用CreateCameraCapture都无法打开摄像头。这种情况主要是由于windows 下的摄像头的都用了Directshow,而opencv 的这两个函数都需要使用VFW的驱动才能正常使用。解决办法:比较复杂,可以在VS中加入DirectShow的一些函数库,来实现二者的兼容。


      主要就是这两个问题。起先为了解决摄像头打不开的问题,查找了无数的例程,始终解决不了问题。最后在opencv2.4.9的自带的几个sample中找到了一个使用摄像头的程序,发现其中并没有使用CvCaptureFromCam和CreateCameraCapture函数,而是使用了一个VideoCapture cap的

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值