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

时间:2012-10-03 22:23:08

标签: python linux opencv webcam

我正在尝试使用opencv在python中编写简单的面部检测。但不幸的是我的opencv拒绝检测我的网络摄像头。我不确定它在内部如何工作,因为文档非常有限,但CaptureFromCAM(-1)返回一些对象,但QueryFrame返回nones。当我尝试在奶酪中使用我的两个摄像头中的一个时,我会毫无问题地获得视频。

    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)

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

好的,我已经弄清楚了。基本上我的openvc是用v4l(video for linux)支持编译的。

解决此问题时,您首先需要确保您的相机正在使用v4l与其他应用程序一起使用。如果是这种情况,那么您可以尝试使用v4l支持重新编译openvc。对于gentoo(使用portage),它非常简单:

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

对于其他包管理器要么想出来,要么使用USE_V4L = ON来源编译。