[英]displaying video from webcam in OpenCV
我已经安装了VS2008,并且可以运行opencv库中的演示代码“camshiftdemo和lkdemo”。 完成后,我现在尝试从互联网上运行一些简单的代码,以熟悉OpenCV。 我只是想从网络摄像头显示视频,我收到以下错误..
我得到的错误是:
opencv.exe中0x5e7e3d10(highgui200.dll)的未处理异常:0xC0000005:访问冲突读取位置0x719b3856。
我试图运行的代码是:
#include <cv.h>
#include <highgui.h>
void main(int argc,char *argv[])
{
int c;
IplImage* color_img;
CvCapture* cv_cap = cvCaptureFromCAM(-1); // -1 = only one cam or doesn't matter
cvNamedWindow("Video",1); // create window
for(;;) {
color_img = cvQueryFrame(cv_cap); // get frame
if(color_img != 0)
cvShowImage("Video", color_img); // show frame
c = cvWaitKey(10); // wait 10 ms or for key stroke
if(c == 27)
break; // if ESC, break and quit
}
/* clean up */
cvReleaseCapture( &cv_cap );
cvDestroyWindow("Video");
}
任何帮助都将非常感谢。
以下代码使用OpenCV 2.1编译并在VS2008中为我工作
#include <cv.h>
#include <highgui.h>
void main(int argc,char *argv[])
{
int c;
IplImage* color_img;
CvCapture* cv_cap = cvCaptureFromCAM(0);
cvNamedWindow("Video",0); // create window
for(;;) {
color_img = cvQueryFrame(cv_cap); // get frame
if(color_img != 0)
cvShowImage("Video", color_img); // show frame
c = cvWaitKey(10); // wait 10 ms or for key stroke
if(c == 27)
break; // if ESC, break and quit
}
/* clean up */
cvReleaseCapture( &cv_cap );
cvDestroyWindow("Video");
}
我想你必须删除“cvReleaseCapture(&cv_cap);” 句子。 我尝试过这个。 它可以工作。 不知何故,当您按下ESC按钮时,捕获正在被释放。 值得一试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.