2013-01-06 132 views
0

我在连接我的摄像头OpenCV。我的笔记本电脑的Windows 7 64位网络摄像头正常工作。由于没有任何摄像头OpenCV和连接摄像头?

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

,它返回的消息错误:但如果我连接其他网络摄像头,代码不会在所有的工作。我禁用笔记本电脑摄像头,它的工作,但我越来越黑屏。

我试了两个摄像头,分别是微软的Logitech HD Pro C920LifeCam Cinema。这是负责任的,以获得凸轮行:

CvCapture* mycapWebcam = cvCaptureFromCAM(0); 

我改变了0到另一个值(0-10),这是关于这个结构的信息:

CvCapture * cvCaptureFromCAM(INT指数)

初始化从相机捕获视频。

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

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

要释放结构,请使用ReleaseCapture。

我该如何解决这个问题?

+0

你确定摄像头是正常开启?我的意思是,你需要禁用你的笔记本电脑摄像头,是吗? –

+0

感谢您的回复。是的,我确定网络摄像头能够正常工作,您说的禁用笔记本电脑网络摄像头是什么意思,以及我怎么做? – CroCo

+0

如果您使用Windows,您可以在“成像设备”的“设备管理器”中找到适用于笔记本电脑的USB摄像头,然后右键单击并禁用它,之前我遇到过这个问题,它与我一起工作 –

回答

0

如果使用的是其他相机,你应该设置为1指数:

capWebcam = cvCaptureFromCAM(1);