OpenCV和连接网络摄像头



我正在努力在OpenCV中连接我的网络摄像头。我笔记本电脑的64位Windows 7网络摄像头工作正常。但是如果我连接另一个摄像头,代码根本不起作用:

capWebcam = cvCaptureFromCAM(0); 
if(capWebcam == NULL) { 
    printf("error: capture is NULL n"); 
    getchar(); 
    return(-1);
}

由于没有任何摄像头,它返回消息error。我关闭了笔记本电脑的摄像头,它可以工作,但是我的电脑黑屏了。

我尝试了两款网络摄像头,分别是罗技HD Pro C920和微软的LifeCam Cinema。这是负责获取凸轮的行:

CvCapture* mycapWebcam = cvCaptureFromCAM(0);

我将0更改为另一个值(0-10),这是关于该结构的信息:

CvCapture* cvCaptureFromCAM(int index)

初始化从摄像机捕获视频。

参数:index -要使用的摄像机的索引。如果只有一个摄像机,或者使用什么摄像机无关紧要,则可以传递-1。

函数cvCaptureFromCAM()分配并初始化CvCapture结构,用于从摄像机读取视频流。目前Windows上可以使用两种摄像头接口:Video for Windows (VFW)和matrix Imaging Library (MIL);Linux上的两个:V4L和FireWire (IEEE1394)。

释放结构,使用ReleaseCapture。

如何解决这个问题?

尝试使用不同的API -看看我对堆栈溢出问题的回答 Mac上的OpenCV不打开USB网络摄像头

第一帧经常是黑色的(我不知道为什么)。请等待一段时间并获取另一个帧

如果你使用的是另一台相机,你应该设置1为索引:

capWebcam = cvCaptureFromCAM(1);

相关内容

  • 没有找到相关文章

最新更新