实时计算每秒的帧数
cap = cv2.VideoCapture("DJI_0008.MOV")
#cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
#fourcc = cv2.cv.FOURCC(*'XVID')
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output1.avi', fourcc, 20, (1920, 1080))
num=0
while cap.isOpened():
# get a frame
rval, frame = cap.read()
# save a frame
if rval==True:
# frame = cv2.flip(frame,0)
# Start time
start = time.time()
rclasses, rscores, rbboxes=process_image(frame) #换成自己调用的函数
# End time
end = time.time()
# Time elapsed
seconds = end - start
print( "Time taken : {0} seconds".format(seconds))
# Calculate frames per second
fps = 1 / seconds;
print( "Estimated frames per second : {0}".format(fps));
#bboxes_draw_on_img(frame,rclasses,rscores,rbboxes)
#print(rclasses)
out.write(frame)
num=num+1
print(num)
#fps = cap.get(cv2.CAP_PROP_FPS)
#print("Frames per second using video.get(cv2.CAP_PROP_FPS) : {0}".format(fps))
else:
break
# show a frame
cv2.imshow("capture", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
out.release()
cv2.destroyAllWindows()
参考文献
[1].How to find frame rate or frames per second (fps) in OpenCV ( Python / C++ ) ?.https://www.learnopencv.com/how-to-find-frame-rate-or-frames-per-second-fps-in-opencv-python-cpp/
[2].fps - how to divide count by time function to determine fps. https://stackoverflow.com/questions/43761004/fps-how-to-divide-count-by-time-function-to-determine-fps