2012-06-11 11 views
5

Próbowałem wiele kombinacji w opencv 2.3 i 2.4, aby uzyskać liczbę klatek wideo, ale bez żadnego wyniku. Wygląda na to, że go po prostu nie ma.brak dostępu do GetCaptureProperty lub podobnej funkcji w 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 

'moduł' obiekt ma atrybut 'CV_CAP_PROP_FRAME_COUNT'

Każdy przeszedł coś podobnego?

Odpowiedz

7

Musicie być trochę ostrożny swoich cv2 i cv importu, zarówno tych prac:

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

Miałeś rację. Po raz pierwszy jest to mylące, ale to jest to. – tookanstoken

+0

Czy istnieje dokumentacja dotycząca "portowania" aplikacji korzystającej z interfejsów API stylu cv do stylu cv2? Import cv2.cv jako cv już nie działa, a zatem kod, który mam, który używa cv, nie działa i będzie musiał go zmienić z tego, co widzę tutaj. – MikeyB