OpenCV - 显示网络摄像头视频时出错

时间:2012-06-15 16:18:51

标签: c opencv webcam

我对OpenCV很陌生,我正试图通过查看和运行示例代码来了解我的方向。

我正在查看的一个示例程序是用于显示网络摄像头视频的程序。以下是重要的部分(程序执行不比此更远):

// Make frame.
CvCapture* capture = cvCaptureFromCAM(0);

if(!capture) {
    printf("Webcam not initialized....");
}
// Display video in frame.

不幸的是,if语句总是执行。出于某种原因,capture未初始化。

更奇怪的是,当我运行程序时,它甚至给我一个GUI来选择我想要使用的网络摄像头:

Webcam Selection GUI

但是,即使我选择了网络摄像头,capture也未初始化!

这是什么意思?我该如何解决这个问题?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

OpenCV可能无法在您选择之前访问网络摄像头。在这种情况下,尝试循环直到网络摄像头可用:

CvCapture *capture = NULL;
do {
    // you could also try passing in CV_CAP_ANY or -1 instead of 0
    capture = cvCaptureFromCAM(0);
} while (!capture);

如果仍然无效,请致电cvErrorStr(cvGetErrStatus())以获取解释错误的字符串。

相关问题