2017-01-23 202 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中手動設置此。不確定這個解釋的正確性是否困難。