2012-09-29 130 views
1

如何在Python中使用OpenCV設置捕獲幀率?這是我的代碼,但是結果的幀率小於請求的30fps。另外,視頻質量很差。如何使用OpenCV攝像頭捕獲設置幀率

import cv 
cv.NamedWindow ('CamShiftDemo', 1) 
device = -1 
cap = cv.CaptureFromCAM(device) 
size = (640,480) 
cv.SetCaptureProperty(cap, cv.CV_CAP_PROP_FPS,30) 
cv.SetCaptureProperty(cap, cv.CV_CAP_PROP_FRAME_WIDTH, size[0]) 
cv.SetCaptureProperty(cap, cv.CV_CAP_PROP_FRAME_HEIGHT, size[1]) 
while True: 
    frame = cv.QueryFrame(cap) 
    cv.ShowImage('CamShiftDemo', frame) 
    cv.WaitKey(10) 

回答

0

您通過硬件的限制,即:

  1. 相機的拍攝功能,以及
  2. 您的計算機的系統資源。

如果其中任何一個都無法處理請求的捕獲參數(在您的情況下,分辨率爲640x480,分辨率爲30fps),那麼您的運氣不好。您給OpenCV 的參數僅僅是建議 - 它會盡可能地匹配它們。

您使用的是什麼型號的相機?我會先看看模型規格,看看他們是否宣傳您所需的參數。