2010-11-04 4 views

Répondre

6
int cvGetCaptureProperty(CvCapture* capture, int property_id); 

avec property_id = CV_CAP_PROP_FPS

+0

cela ne fonctionne pas pour moi. dans opencv/python étant donné que cap = cv2.VideoCapture (0), print "frame rate =", cap.get (5) me donne un fps de zéro. notez que fps est la constante 5 pour cv_cap_prop. – user391339

2

Il semble que pour la capture de webcam en direct, vous pouvez définir un fps arbitraire et lire ce même fps, qui n'a rien à voir avec le vrai fps de webcam. Est-ce un bug?

Par exemple:

cvSetCaptureProperty(capture,CV_CAP_PROP_FPS,500); 

et plus tard

double rates = cvGetCaptureProperty(capture,CV_CAP_PROP_FPS); 
printf("%f\n",rates); 

vous donnera 500.

Mais si je l'ai chronométré en utilisant web cam fps link, il est autour des 30fps normales.

0

* OpenCV 2 solution:

C++: double VideoCapture::get(int propId) 

Par ex

VideoCapture myvid("video.mpg"); 
int fps=myvid.get(CV_CAP_PROP_FPS); 
0

Dans mon cas, fps = video.get (cv2.CAP_PROP_FPS) ne fonctionne pas.

Alors, je trouve ce code dans ce lien:

https://www.learnopencv.com/how-to-find-frame-rate-or-frames-per-second-fps-in-opencv-python-cpp/

import cv2 
import time 

if __name__ == '__main__': 

    video = cv2.VideoCapture(1) 

    # Find OpenCV version 
    (major_ver, _, _) = (cv2.__version__).split('.') 

    # With webcam get(CV_CAP_PROP_FPS) does not work. 
    # Let's see for ourselves. 

    if int(major_ver) < 3: 
     fps = video.get(cv2.cv.CV_CAP_PROP_FPS) 
     print "Frames per second using video.get(cv2.cv.CV_CAP_PROP_FPS): {0}".format(fps) 
    else: 
     fps = video.get(cv2.CAP_PROP_FPS) 
     print "Frames per second using video.get(cv2.CAP_PROP_FPS) : {0}".format(fps) 

    # Number of frames to capture 
    num_frames = 120 

    print "Capturing {0} frames".format(num_frames) 

    # Start time 
    start = time.time() 

    # Grab a few frames 
    for i in xrange(0, num_frames): 
     ret, frame = video.read() 

    # End time 
    end = time.time() 

    # Time elapsed 
    seconds = end - start 
    print "Time taken : {0} seconds".format(seconds) 

    # Calculate frames per second 
    fps = num_frames/seconds 
    print "Estimated frames per second : {0}".format(fps); 

    # Release video 
    video.release() 
Questions connexes