OpenCV Python – fps 출력하는 Webcam/Video File 기본 예제 코드OpenCV/OpenCV 강좌2023. 10. 8. 09:08
Table of Contents
반응형
웹캠 / 비디오 파일에서 가져온 이미지에 fps 표시하여 화면에 출력하는 OpenCV Python 예제 코드입니다.
2022. 03. 06 최초작성
2023. 09. 10 웹캠/비디오 파일을 성공적으로 열었는지 여부를 체크
# 참고 # https://github.com/dgseten/bad-cv-tfm/blob/2ada9b71f85aa5eb75c1f4a039cb14d697ee2f69/tools/video/video-player-wait-fps.py # https://stackoverflow.com/a/65146731 import cv2 import time # 이미지에 텍스트를 출력하는 함수 def draw_text(img, text, x, y): font = cv2.FONT_HERSHEY_SIMPLEX font_scale = 1 font_thickness = 2 text_color=(255, 0, 0) text_color_bg=(0, 0, 0) text_size, _ = cv2.getTextSize(text, font, font_scale, font_thickness) text_w, text_h = text_size offset = 5 cv2.rectangle(img, (x - offset, y - offset), (x + text_w + offset, y + text_h + offset), text_color_bg, -1) cv2.putText(img, text, (x, y + text_h + font_scale - 1), font, font_scale, text_color, font_thickness) # 웹캠 사용시 cap = cv2.VideoCapture(0) # 비디오 파일 사용시 # cap = cv2.VideoCapture('test.mp4') if not cap.isOpened(): print("웹캠/비디오 파일을 열 수 없습니다.") exit(0) else: print("웹캠/비디오 파일을 성공적으로 열었습니다.") # 웹캠에서 fps 값 획득 fps = cap.get(cv2.CAP_PROP_FPS) print('fps', fps) if fps == 0.0: fps = 30.0 time_per_frame_video = 1/fps last_time = time.perf_counter() while True: # 웹캠에서 이미지 읽어옴 ret,img_color = cap.read() if ret == False: print('웹캠에서 영상을 읽을 수 없습니다.') break # fsp 계산 time_per_frame = time.perf_counter() - last_time time_sleep_frame = max(0, time_per_frame_video - time_per_frame) time.sleep(time_sleep_frame) real_fps = 1/(time.perf_counter()-last_time) last_time = time.perf_counter() x = 30 y = 50 text = '%.2f fps' % real_fps # 이미지의 (x, y)에 텍스트 출력 draw_text(img_color, text, x, y) cv2.imshow("Color", img_color) # ESC키 누르면 중지 if cv2.waitKey(1)&0xFF == 27: break cap.release() cv2.destroyAllWindows() |
반응형
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
4분할로 웹캠 또는 동영상을 보여주는 OpenCV C++ 예제 (0) | 2023.10.08 |
---|---|
OpenCV Python – 이미지 연결하는 hconcat, vconcat 예제 (0) | 2023.10.08 |
OpenCV Python을 사용하여 HeatMap 흉내내기 – applyColorMap 사용 (0) | 2023.10.08 |
간단히 구현한 RTSP 재접속 및 비디오 다시 재생하는 OpenCV 코드 (0) | 2023.10.07 |
OpenCV Python 그리기 예제 1. OpenCV의 좌표계 (0) | 2023.04.13 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!