python:读取视频,处理后,实时计算帧数fps

实时计算每秒的帧数


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

你可能感兴趣的:(python学习)