프레임수를 계산해 윈도우에 출력하는 코드를 작성했다.
fps : frame per second (초당 프레임)
동영상은 연속된 정지 사진들의 모음이다. 각각의 정지 사진 하나를 프레임이라고 부른다. frame rate는 1초에 몇 장의 사진들이 보이는지를 가르키는 말이다.
코드의 원리는 코드를 한 번 실행하는 데에 걸리는 시간을 계산해 1초로 나누어 프레임 수를 계산하는 것이다.
calculate fps.py
import cv2
import time # fps 계산 시 사용
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
if cap.isOpened() == False:
print("Camera is not opened")
exit(1)
prevTime = time.time() # previous time
while True:
ret, img = cap.read()
if ret == False:
print("Capture failed")
break
img = cv2.flip(img, 1)
# 프레임 수 계산
curTime = time.time() # current time
fps = 1 / (curTime - prevTime)
prevTime = curTime
# 프레임 수 문자열에 저장
fps_str = "FPS : %0.1f" %fps
# 문자열 표시
cv2.putText(img, fps_str, (0, 25), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0))
cv2.imshow('Camera', img)
key = cv2.waitKey(1)
if key == 27:
break
cap.release()
cv2.destroyAllWindows()
cv2.putText(image, text, org, font, fontScale, color)
: 윈도우 화면에 텍스트를 보이기 위해 추가한 함수이다.