【发布时间】:2012-12-20 15:44:31
【问题描述】:
我正在努力在OpenCV 中连接我的网络摄像头。我的笔记本电脑在 Windows 7 64 位中的网络摄像头工作正常。但是如果我连接另一个网络摄像头,代码根本不起作用:
capWebcam = cvCaptureFromCAM(0);
if(capWebcam == NULL) {
printf("error: capture is NULL \n");
getchar();
return(-1);
}
由于没有任何网络摄像头,它返回消息错误。我禁用了笔记本电脑的网络摄像头,它工作正常,但我得到了黑屏。
我尝试了两个网络摄像头,即来自 Microsoft 的 Logitech HD Pro C920 和 LifeCam Cinema。这是负责获取 cam 的行:
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。
我该如何解决这个问题?
【问题讨论】:
-
您确定网络摄像头正常打开吗?我的意思是,您需要禁用笔记本电脑的网络摄像头,对吗?
-
感谢您的回复。是的,我确定网络摄像头可以正常工作,您所说的禁用笔记本电脑网络摄像头是什么意思?我该怎么做?
-
如果你使用windows,你会在“成像设备”的“设备管理器”中找到笔记本电脑的USB摄像头,然后右键单击并禁用它,我之前遇到过这个问题,它对我有用跨度>
-
再次感谢您。网络摄像头工作,但我得到黑屏。你知道为什么吗?
-
我解决了这个问题。我确实按照另一个教程来设置我的 OpenCV,并且它有效。