OpenCV + OS X +外部网络摄像头=非常慢

时间:2017-01-23 03:04:59

标签: python macos performance opencv webcam

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

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中遇到了某种配置问题。

有人经历过这样的事吗? 谢谢你的回答。

2 个答案:

答案 0 :(得分:2)

好像我可以解决我的问题。 我只是要降低相机的分辨率。

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

我认为Photo Booth会自动设置分辨率以提高速度或读数,但是,必须在OpenCV中手动设置。不确定这个解释的正确性很难。

答案 1 :(得分:0)

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