Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV-显示网络摄像头视频时出错_C_Opencv_Webcam - Fatal编程技术网

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

OpenCV-显示网络摄像头视频时出错,c,opencv,webcam,C,Opencv,Webcam,我对OpenCV非常陌生,我正试图通过查看和运行示例代码来了解自己的方向 我正在看的一个示例程序是一个用于显示网络摄像头视频的程序。以下是重要的几行(程序执行的时间不会超过这一行): 不幸的是,if语句总是执行。由于某些原因,捕获未初始化 更奇怪的是,当我运行程序时,它甚至给了我一个GUI来选择我想要使用的网络摄像头: 但是,即使我选择了网络摄像头,capture也不会初始化 这是什么意思?我该如何解决这个问题 感谢您的建议。在您选择网络摄像头之前,OpenCV可能无法访问该摄像头。在这种情况

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

我正在看的一个示例程序是一个用于显示网络摄像头视频的程序。以下是重要的几行(程序执行的时间不会超过这一行):

不幸的是,
if
语句总是执行。由于某些原因,
捕获
未初始化

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

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

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


感谢您的建议。

在您选择网络摄像头之前,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())
以获取解释错误的字符串。

是否有任何其他可能正在使用相机运行的内容,例如skype?+1 Martin Beckett。我确信这是摄像头驱动程序的问题(在linux中是v4l)。
capture
已经初始化,但是我得到的窗口是空的。。。。不过,谢谢你回答我的问题。在这种情况下,正如其他评论者所建议的那样,我建议检查你是否拥有最新版本的OpenCV,并检查你的视频驱动程序,如果你无法使用当前的摄像头,则可能使用另一个摄像头。
CvCapture *capture = NULL;
do {
    // you could also try passing in CV_CAP_ANY or -1 instead of 0
    capture = cvCaptureFromCAM(0);
} while (!capture);