OpenCV打开摄像头问题
2015-05-23 09:49
309 查看
先看一段代码,这段代码是有问题的,问题在于:因为电脑开启摄像头需要一定的时间,所以frame = cvQueryFrame(capture);第一次执行完后没法获取到第一帧。
解决方法是判断摄像头是否打开,最简单的方法是直接删掉if( !frame ) break;这一句
其他方法:
里面有cam.isOpened(),会执行开启摄像头的操作,判断摄像头是否已经打开,然后再执行读取,自然不会出现问题
文章引用:888哈喽888
http://tieba.baidu.com/p/3360152308
#include "cv.h" #include "highgui.h" int main( int argc, char** argv ) { cvNamedWindow( "Example2_9", CV_WINDOW_AUTOSIZE ); CvCapture* capture; if (argc==1) { capture = cvCreateCameraCapture( 0 ); } else { capture = cvCreateFileCapture( argv[1] ); } assert( capture != NULL ); IplImage* frame; while(1) { frame = cvQueryFrame( capture ); if( !frame ) break;//问题在这里 cvShowImage( "Example2_9", frame ); char c = cvWaitKey(10); if( c == 27 ) break; } cvReleaseCapture( &capture ); cvDestroyWindow( "Example2_9" ); }
解决方法是判断摄像头是否打开,最简单的方法是直接删掉if( !frame ) break;这一句
其他方法:
#include <iostream> using namespace std; using namespace cv; void main() { Mat input_image; VideoCapture cam(0); if(!cam.isOpened()) exit(0); namedWindow("input image"); while(true) { cam >> input_image; imshow("input image", input_image); if(27 == waitKey(30)) break; } }
里面有cam.isOpened(),会执行开启摄像头的操作,判断摄像头是否已经打开,然后再执行读取,自然不会出现问题
文章引用:888哈喽888
http://tieba.baidu.com/p/3360152308
相关文章推荐
- 使用PCI-E USB3.0扩展板卡解决OPENCV不能同时打开同品牌摄像头的问题
- 请教大神:win下的OPENCV,打开外置摄像头的问题
- win7 旗舰 vs2008 OpenCV2.3.1 解决了 OpenCV旧版本在win7下不能打开摄像头的问题
- 关于opencv2.4.9和VS2013在windows7下无法打开摄像头的问题的扯
- 关于opencv打开摄像头的数量的问题
- 关于opencv无法打开win7笔记本摄像头问题
- 虚拟机Ubuntu打开摄像头失败及OpenCV打开摄像头超时的问题
- Linux下利用Opencv打开笔记本摄像头问题
- 关于opencv2.4.9和VS2013在windows7下无法打开摄像头的问题的扯淡解决办法
- 自己组装摄像头软件opencv无法打开的问题
- 关于opencv打开摄像头成灰色问题
- 使用OpenCV 实现多摄像头图像处理笔记(1):DirectShow的配置过程可能出现的问题
- opencv学习(七)(opencv3.0.0+VS2012+win7)打开摄像头并且进行边缘检测加上了滑动条
- opencv 3.0 打开摄像头读视频(度申FM036和Basler acA640-90gc)
- MFC 通过opencv打开摄像头 拍照后显示保存
- OpenCV2.2.0版本中无法调取摄像头问题解决
- opencv环境的搭建,并打开一个本地PC摄像头。
- python+opencv打开摄像头,保存视频、拍照功能的实现
- OPencv2 无法打开摄像,摄像头灰
- opencv打开摄像头采集和保存