OpenCV并连接网络摄像头?

时间:2013-01-06 21:36:15

标签: opencv webcam

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

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

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

我尝试了两个网络摄像头,即来自Microsoft的Logitech HD Pro C920LifeCam Cinema。这是负责获取凸轮的一线:

CvCapture* mycapWebcam = cvCaptureFromCAM(0);

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

  

CvCapture * cvCaptureFromCAM(int index)

     

初始化从相机捕获视频。

     

参数:index - 要使用的摄像机的索引。如果只有一台摄像机或使用什么摄像机无关紧要,可以通过-1。

     

函数cvCaptureFromCAM()分配并初始化CvCapture结构,以便从摄像头读取视频流。目前,Windows上可以使用两个摄像头接口:Windows视频(VFW)和Matrox成像库(MIL); Linux上有两个:V4L和FireWire(IEEE1394)。

     

要释放结构,请使用ReleaseCapture。

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

尝试使用其他API - 请查看my answer to Stack Overflow question OpenCV on Mac is not opening USB web camera

第一帧经常是黑色的(我不知道为什么)。试着等一段时间再换一帧。

答案 1 :(得分:0)

如果您正在使用其他相机,则应将1设为索引:

capWebcam = cvCaptureFromCAM(1);