2012-06-11 24 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