0

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

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

由于没有任何网络摄像头,因此它返回消息错误。我禁用了笔记本电脑的网络摄像头,它工作正常,但我得到了黑屏。

我尝试了两个网络摄像头,分别是罗技 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) 和 Matrox Imaging Library (MIL);Linux 上的两个:V4L 和 FireWire (IEEE1394)。

要释放结构,请使用 ReleaseCapture。

我该如何解决这个问题?

4

2 回答 2

0

尝试使用不同的 API - 查看我对 Stack Overflow 问题OpenCV on Mac is not opening USB web camera的回答。

第一帧通常是黑色的(我不知道为什么)。尝试等待一段时间并获得另一帧。

于 2013-01-07T00:34:33.663 回答
0

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

capWebcam = cvCaptureFromCAM(1);
于 2013-10-27T18:23:51.730 回答