Donc, j'ai besoin d'obtenir le taux fps de la caméra Web dans OpenCV. Quelle fonction peut faire une telle chose?Comment obtenir le taux de fps de la caméra Web dans OpenCV?
2
A
Répondre
6
int cvGetCaptureProperty(CvCapture* capture, int property_id);
avec property_id = CV_CAP_PROP_FPS
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()
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