2017-01-23 201 views
0

我在外部摄像头(Microsoft Cinema HD Lifecam)上使用OS X上的openCV,即使使用最简单的摄像头读取代码,其性能也非常低。OpenCV + OS X +外部网络摄像头=非常慢

import cv2 
cap = cv2.VideoCapture(1) 

while(cap.isOpened()): 
    ret, frame = cap.read() 
    cv2.imshow("Output", frame) 
    if cv2.waitKey(1) & 0xFF == ord('q'): 
     break 

cap.release() 
cv2.destroyAllWindows() 

我试过与Photo Booth相同的网络摄像机,它可以很好地运行在高FPS下。另外,我用我的mac内置的Facetime相机尝试了相同的代码,它的运行速度非常快。所以,看起来我在OpenCV中有某种配置问题。

有人曾经历过这样的事情吗? 感谢您的回答。

+0

什么是*“高FPS”*什么是*“非常慢”*请?另外,在你对伊万答案的评论中,什么需要6.2s?一帧?什么需要11.4s?一帧?你是如何安装OpenCV的? –

回答

0

尝试执行特定的阅读器实现,请参阅here。选项来尝试CAP_QT和CAP_AVFOUNDATION,完整列表是here。请注意,OpenCV必须构建以支持阅读器实现。

+0

6.2s与内置摄像头 11.4s与外部的一个 –

1

看来我可以解决我的问题。 我只是不得不降低相机的分辨率。

cap = cv2.VideoCapture(0) 
cap.set(3,640) 
cap.set(4,480) 

我想的Photo Booth,以提高速度或读出自动设置分辨率,但是,人们必须在OpenCV中手动设置此。不确定这个解释的正确性是否困难。