2012-06-11 20 views
5

我在opencv 2.3和2.4中嘗試了很多組合來獲取視頻的幀數,但沒有任何結果。它似乎根本不存在。無法訪問GetCaptureProperty或Python中的任何類似功能opencv

stream = cv.VideoCapture(avsfilename) #stream.isOpened() returns True, everything's ok 
framecount = cv.GetCaptureProperty(stream, CV_CAP_PROP_FRAME_COUNT) #no 
framecount = cv.GetCaptureProperty(stream, cv.CV_CAP_PROP_FRAME_COUNT) #no 
framecount = stream.get(cv.CV_CAP_PROP_FRAME_COUNT) #no 
framecount = stream.get(CV_CAP_PROP_FRAME_COUNT) #no 

'模塊' 對象有沒有屬性 'CV_CAP_PROP_FRAME_COUNT'

有人經過類似的東西?

回答

7

你要小心一點你cv2cv進口,這兩個工作:

import cv2 
import cv2.cv as cv 

#Using cv2: 
stream = cv2.VideoCapture(filename) 
print stream.get(cv.CV_CAP_PROP_FRAME_COUNT) 

#using cv: 
stream = cv.CaptureFromFile(filename) 
print cv.GetCaptureProperty(stream, cv.CV_CAP_PROP_FRAME_COUNT) 
+0

你是對的。這是第一次讓人困惑,但就是這樣。 – tookanstoken

+0

是否有關於如何將使用cv樣式API的應用程序「移植」到cv2樣式的文檔? 作爲cv的導入cv2.cv不再起作用,因此我使用cv的代碼不起作用,需要將其從我在這裏看到的內容中更改。 – MikeyB