import cv2
video_file = './Boy.mp4' # 동영상 파일 경로
cap = cv2.VideoCapture(video_file) # 동영상 캡쳐 객체 생성
if cap.isOpened(): # 캡쳐 객체 초기화 확인
fps = cap.get(cv2.CAP_PROP_FPS) # 프레임 수 구하기
delay = int(1000/fps)
print("FPS: %f, Delay: %dms" %(fps, delay))
while True:
ret, img = cap.read() # 다음 프레임 읽기
if ret: # 프레임 읽기 정상
cv2.imshow(video_file, img) # 화면에 표시
cv2.waitKey(delay) # fps에 맞게 시간 지연
else:
break # 다음 프레임 읽을 수 없슴, 재생 완료
else:
print("can't open video.") # 캡쳐 객체 초기화 실패
cap.release() # 캡쳐 자원 반납
cv2.destroyAllWindows()
cv2.VideoCapture().get(propId) - 영상의 속성 값 읽어오기
cv2.CAP_PROP_FRAME_WIDTH - 프레임 너비
cv2.CAP_PROP_FRAME_HEIGHT - 프레임 높이
cv2.CAP_PROP_FPS - 초당 프레임 수
cv2.CAP_PROP_FRAME_COUNT - 영상의 총 프레임 수
cv2.CAP_PROP_POS_MSEC - ms단위의 현재 위치
cv2.CAP_PROP_POS_FRAMES - 현재 프레임 번호
cv2.CAP_PROP_EXPOSURE - 노출
import cv2
video_file = './Boy.mp4' # 동영상 파일 경로
cap = cv2.VideoCapture(video_file) # 동영상 캡쳐 객체 생성
if cap.isOpened(): # 캡쳐 객체 초기화 확인
fps = cap.get(cv2.CAP_PROP_FPS) # 프레임 수 구하기
delay = int(1000/fps)
FRAME_WIDTH = cap.get(cv2.CAP_PROP_FRAME_WIDTH )
FRAME_HEIGHT = cap.get(cv2.CAP_PROP_FRAME_HEIGHT )
FPS = cap.get(cv2.CAP_PROP_FPS )
FRAME_COUNT = cap.get(cv2.CAP_PROP_FRAME_COUNT )
POS_MSEC = cap.get(cv2.CAP_PROP_POS_MSEC )
POS_FRAMES = cap.get(cv2.CAP_PROP_POS_FRAMES )
EXPOSURE= cap.get(cv2.CAP_PROP_EXPOSURE)
print("FRAME_WIDTH: %.2f\nFRAME_HEIGHT: %.2f\nFPS: %.2f\nFRAME_COUNT: %.2f\nPOS_MSEC: %.2f\nPOS_FRAMES: %.2f\nEXPOSURE: %.2f"
%(FRAME_WIDTH, FRAME_HEIGHT, FPS, FRAME_COUNT, POS_MSEC, POS_FRAMES, EXPOSURE))
while True:
ret, img = cap.read() # 다음 프레임 읽기
if ret: # 프레임 읽기 정상
cv2.imshow(video_file, img) # 화면에 표시
cv2.waitKey(delay) # fps에 맞게 시간 지연
else:
break # 다음 프레임 읽을 수 없슴, 재생 완료
else:
print("can't open video.") # 캡쳐 객체 초기화 실패
cap.release() # 캡쳐 자원 반납
cv2.destroyAllWindows()
FRAME_WIDTH: 960.00
FRAME_HEIGHT: 540.00
FPS: 29.97
FRAME_COUNT: 600.00
POS_MSEC: 0.00
POS_FRAMES: 0.00
EXPOSURE: 0.0
해당 영상은 초당 30프레임으로 전체 600개의 프레임을 960*540크기로 출력해주는 영상인 것을 알 수 있다.
'OpenCV' 카테고리의 다른 글
[OpenCV_01_08_사진 찍기] (0) | 2022.12.10 |
---|---|
[OpneCV_01_07_프레임 크기 수정하기] (0) | 2022.12.09 |
[OpenCV_01_05_카메라 불러오기] (0) | 2022.12.08 |
[OpenCV_01_04_비디오 불러오기] (1) | 2022.12.08 |
[OpenCV_01_03_이미지 저장하기] (0) | 2022.12.07 |