opencv + python + linux + webcam =无法捕获帧

我想在python中使用opencv编码简单的人脸检测。 但不幸的是,我的opencv拒绝检测我的摄像头。 我不确定它是如何在内部工作的,因为文档是非常有限的,但是CaptureFromCAM(-1)返回一些对象,但是QueryFrame返回nones。 当我尝试使用我的两个摄像头之一,例如在奶酪,我得到video没有问题。

capture = cv.CaptureFromCAM(-1) faceCascade = cv.Load("haarcascade_frontalface_alt.xml") while (cv.WaitKey(15)==-1): img = cv.QueryFrame(capture) if img != None: image = DetectFace(img, faceCascade) cv.ShowImage("face detection test", image) cv.ReleaseCapture(capture) 

有任何想法吗?

好的,我明白了。 基本上我的openvc是用v4l(video for linux)支持编译的。

在解决这个问题时,首先需要确保你的相机使用v4l来处理其他应用程序。 如果是这样的话,那么你可以尝试用v4l支持来重新编译openvc。 gentoo(使用portage)非常简单:

  sudo su USE="v4l v4l2" emerge -av opencv 

对于其他软件包管理者,可以通过USE_V4L = ON从源代码中找出或编译。