Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
opencv+;python+;linux+;网络摄像头=无法捕获帧_Python_Linux_Opencv_Webcam - Fatal编程技术网

opencv+;python+;linux+;网络摄像头=无法捕获帧

opencv+;python+;linux+;网络摄像头=无法捕获帧,python,linux,opencv,webcam,Python,Linux,Opencv,Webcam,我正在尝试使用opencv用python编写简单的人脸检测代码。但不幸的是,我的opencv拒绝检测我的网络摄像头。我不确定它在内部是如何工作的,因为文档非常有限,但是CaptureFromCAM(-1)返回一些对象,而QueryFrame返回nones。当我试着使用我的两个摄像头中的一个时,比如在奶酪中,我可以毫无问题地获得视频 capture = cv.CaptureFromCAM(-1) faceCascade = cv.Load("haarcascade_frontalf

我正在尝试使用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)

有什么想法吗?

好的,我已经想好了。基本上,我的openvc是用v4l(linux视频)支持编译的

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

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

对于其他软件包管理器,请使用USE_V4L=ON找出问题或从源代码处编译。

我在我的计算机上尝试了您的代码,效果很好,因此您的OpenCV设置可能有问题。顺便提一下,您为什么不使用更新的、文档更完整的
cv2
界面呢?