Blog/content/posts/2023/opencv-fps.md
2023-10-03 21:52:21 +03:00

1.3 KiB
Raw Blame History

title date draft tags
🎬 Счётчик FPS в OpenCV 2023-10-03T21:41:14+03:00 false
cv
tips
python

На примере работы с YOLOv8 показываю получение FPS.

Необходим модуль time и две переменные: prev_frame_time, new_frame_time.

import time
import cv2
from ultralytics import YOLO

model = YOLO('best_s_640.pt')

video_path = 'run.mp4'
cap = cv2.VideoCapture(video_path)

prev_frame_time = 0
new_frame_time = 0

while cap.isOpened():
    success, frame = cap.read()

    new_frame_time = time.time()

    if success:
        results = model(frame)

        # Обработка кадра
        # ...

        fps = str(1 / (new_frame_time - prev_frame_time))

        # Вывод FPS на кадр
        cv2.putText(
            annotated_frame,
            fps,
            (7, 70),
            cv2.FONT_HERSHEY_SIMPLEX,
            3,
            (100, 255, 0),
            3,
            cv2.LINE_AA,
        )
        
        prev_frame_time = new_frame_time

        cv2.imshow('OpenCV', complete_frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

    print('FPS: {}'.format(fps))

cap.release()
cv2.destroyAllWindows()