diff --git a/max_fps_test.py b/max_fps_test.py new file mode 100644 index 0000000..e7a3db7 --- /dev/null +++ b/max_fps_test.py @@ -0,0 +1,44 @@ +import cv2 +import time + +cap = cv2.VideoCapture(0) + +# 对应你摄像头640*480,硬件上限30fps +W = 640 +H = 480 +MAX_HW_FPS = 30 + +cap.set(cv2.CAP_PROP_FRAME_WIDTH, W) +cap.set(cv2.CAP_PROP_FRAME_HEIGHT, H) +cap.set(cv2.CAP_PROP_FPS, MAX_HW_FPS) + +total_frame = 0 +start_all = time.time() +last_print = time.time() + +while True: + ret, frame = cap.read() + if not ret: + print("摄像头读取失败") + break + total_frame += 1 + now = time.time() + # 每2秒打印实时平均 + if now - last_print >= 2: + instant_fps = total_frame / (now - start_all) + print(f"实时平均FPS:{instant_fps:.2f} / 硬件上限{MAX_HW_FPS}") + last_print = now + + cv2.imshow("最高帧率测试", frame) + if cv2.waitKey(1) & 0xFF == ord('q'): + break + +# 退出后输出最终稳定最高帧率 +total_time = now - start_all +avg_fps = total_frame / total_time +print("\n========测试结束========") +print(f"总帧数:{total_frame} 总时长:{total_time:.2f}s") +print(f"该分辨率实测稳定最高帧率:{avg_fps:.2f} FPS") + +cap.release() +cv2.destroyAllWindows()