关于opencv2.4.9和VS2013在windows7下无法打开摄像头的问题的扯
2015-07-23 10:48
323 查看
使用opencv 的过程中可能会遇到无法打开摄像头的情况。主要问题在buffers do not match 和 摄像头的驱动使用的Directshow而不是VFW,导致无法打开摄像头。文章通
最近在做一个关于在摄像头中捕捉人脸并追踪人的眼睛的项目,在编程过程中发现始终无法打开摄像头。
后来发现的问题主要集中在以下几个方面:
一 、opencv 的数据不足以支持获取的视频图像。
"buffers do not match"问题是捕捉的视频的图像的分辨率高于opencv 中的数据结构能够承载的最大的数据范围,所以导致虽然能够打开摄像头,但是显示出错,,所以在debug时会报错。
这种问题的解决 办法是在获取到frame后,对frame进行参数的重新设置,降低图像的分辨率,再显示图像,就没问题了。
二 、摄像头的驱动不匹配
始终无法打开摄像头,也不报错。
使用cvCaptureFromCam(-1)始终返回为NULL.或者使用CreateCameraCapture都无法打开摄像头。这种情况主要是由于windows 下的摄像头的都用了Directshow,而opencv 的这两个函数都需要使用VFW的驱动才能正常使用。解决办法:比较复杂,可以在VS中加入DirectShow的一些函数库,来实现二者的兼容。
最近在做一个关于在摄像头中捕捉人脸并追踪人的眼睛的项目,在编程过程中发现始终无法打开摄像头。
后来发现的问题主要集中在以下几个方面:
一 、opencv 的数据不足以支持获取的视频图像。
"buffers do not match"问题是捕捉的视频的图像的分辨率高于opencv 中的数据结构能够承载的最大的数据范围,所以导致虽然能够打开摄像头,但是显示出错,,所以在debug时会报错。
这种问题的解决 办法是在获取到frame后,对frame进行参数的重新设置,降低图像的分辨率,再显示图像,就没问题了。
二 、摄像头的驱动不匹配
始终无法打开摄像头,也不报错。
使用cvCaptureFromCam(-1)始终返回为NULL.或者使用CreateCameraCapture都无法打开摄像头。这种情况主要是由于windows 下的摄像头的都用了Directshow,而opencv 的这两个函数都需要使用VFW的驱动才能正常使用。解决办法:比较复杂,可以在VS中加入DirectShow的一些函数库,来实现二者的兼容。
相关文章推荐
- java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
- centos7 vim 编辑器自动开启行号
- centos Kill -HUP详解
- linux下统计当前目录下文件个数
- linux下开发串口遇到的问题记录
- openwrt 设置连接无线上网
- 使用python远程操作linux服务器
- nginx日志按日期自动切割脚本
- new 、operator new 和 placement new 区别
- 怎么查看在centos中创建的用户组
- linux fork 函数
- 懒人的python——一次执行多条linux命令
- linux&android休眠唤醒
- Linux -- 是一个操作系统,1991年由linus Torvalds发布的,核心是kernel版本号
- OFBiz + Opentaps 目录管理 一. 基本概念
- RHEL6设置本地YUM源
- 7月21日全球域名商(国际域名)解析新增保有量TOP15
- Tomcat 部署的几种方式
- Linux 查看CPU信息、机器型号等硬件信息
- centos 安装 boost