代码:
import cv2
import numpy as np
import sys
import webcolors
import time
cam=cv2.VideoCapture('video2.avi')
_, fo = cam.read()
framei = cv2.cvtColor(fo, cv2.COLOR_BGR2GRAY)
bg_avg = np.float32(framei)
video_width = int(cam.get(3))
video_height = int(cam.get(4))
fr = int(cam.get(5))
print("frame rate of stored video:::",fr)
while(cam.isOpened):
f,img=cam.read()
start_fps=time.time()
.
.
.
k = cv2.waitKey(20)
if(k == 27):
break
endtime_fps=time.time()
diff_fps=endtime_fps-start_fps
print("Frame rate::",1/diff_fps)
对于每次迭代,这将打印不同的帧速率,如: 166.67212398172063,200.00495922941204,200.00495922941204,31.249936670193268,76.92300920661702,38.46150460330851……等等,其中一些值重复了几次。现在,存储的视频的帧率值为25。那么它被读取的实际帧速率是多少呢?
发布于 2014-06-24 01:26:47
我不确定,但我认为这可能归结于你的计时方法。我认为Python的time.time()
方法不能保证足够的精度来提供您想要的实时分析信息。
发布于 2018-05-26 23:32:34
您可以使用以下代码获取FPS(每秒帧数):
import cv2
cam = cv2.VideoCapture('video2.avi')
fps = cam.get(cv2.CAP_PROP_FPS)
https://stackoverflow.com/questions/24361771
复制相似问题