繁体   English   中英

使用opencv进行视频捕获

[英]video capturing with opencv

我正在使用openCV在C中为Windows编写应用程序。 我想从网络摄像头捕获视频并在窗口中显示。 该应用程序几乎完成但它无法正常工作。 我认为这是因为cvQueryFrame()alwasy返回NULL而我不知道为什么。 我尝试在进入之前捕获一些帧,但没有解决问题。

编译器没有显示任何错误。 这不是编译问题,而是执行问题。 我一步一步地调试了它

if(!originalImg) break;

它总是跳出来的。 这就是应用程序不会继续执行的原因。 它打开和关闭非常快。 这是代码:

void main()
{
cvNamedWindow("Original Image", CV_WINDOW_AUTOSIZE);

while (1)
    {
    originalImg = cvQueryFrame(capture);

    if(!originalImg) break;

    cvShowImage("Original Image", originalImg);

    c = cvWaitKey(10);
    if( c == 27 ) break;
}

cvReleaseCapture(&capture);

cvDestroyWindow("Original Image");

}

让我们看看是否有人有一些想法,可以帮助我,谢谢!

看来你还没有打开捕获。 在main的开头添加:

CvCapture* capture = 0;
capture = cvCaptureFromCAM(0);

假设编译正常(包括所有相关库), 可能是相机未正确安装。 你可以检查一下你是否能够使用网络摄像头(使用其他软件)

如果编译实际上是问题,请参考以下相关问题: https//stackoverflow.com/a/5313594/1218748

快速摘要:

重新编译opencv_highgui,在属性页面的C / C ++面板中更改“Preprocesser Definitions”以包括:HAVE_VIDEOINPUT HAVE_DSHOW

还有其他好的答案提出了一些相关的优点,但我的直觉是上述解决方案可行:-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM