您的位置:首页 > 运维架构

解决OpenCV在使用摄像头捕捉视频流时出现的一个奇怪问题

2014-03-23 11:45 417 查看
《学习OpecCV》一书的第二章中有一节是关于用摄像头读入数据的,其中提到cvCreateCameraCapture()这个函数,传入-1表示任选一个摄像设备进行视频流捕捉,

书中源码如下:

cvCapture* capture;
if(argc==1){
capture=cvCreateCameraCapture(0);
}else{
capture = cvCreateFileCapture(argv[1]);
}
assert(capture!=NULL);
//Rest of program proceeds totally ignorant
但是我自己在试验书中的源码的时候发现传入-1时返回值的确不为空,但是程序还是没有图像数据。检查摄像头驱动,正常。说明不是摄像头的问题。问题出在程序内部。

后来发现是摄像头在打开的时候需要时间,在cvCreateCameraCapture()之后加上一句cvWaitKey(5000)之类的语句来等待摄像头开启之后就能正常运行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv