opencv+;python+;linux+;网络摄像头=无法捕获帧
我正在尝试使用opencv用python编写简单的人脸检测代码。但不幸的是,我的opencv拒绝检测我的网络摄像头。我不确定它在内部是如何工作的,因为文档非常有限,但是CaptureFromCAM(-1)返回一些对象,而QueryFrame返回nones。当我试着使用我的两个摄像头中的一个时,比如在奶酪中,我可以毫无问题地获得视频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
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
界面呢?