-
비디오 출력Python study/opencv 2023. 11. 29. 19:15
비디오 출력
비디오 출력 클래스 (cv2.VideoCapture)를 통해 동영상 파일에서 정보를 받아 온 후
순차적으로 프레임을 읽어 출력합니다.
OpenCV는 FFMpeg를 지원하므로 .avi , .mp4 다양한 형식의 동영상 파일을 손쉽게 읽을 수 있습니다.
GIF 파일도 프레임이 존재하므로 동영상 파일을 읽는 방법과 동일하게 처리합니다.메인코드
import cv2 capture = cv2.VideoCapture("F:\dev\opencv\image\oppen.mp4") print(f"isOpened : {capture.isOpened()}") while cv2.waitKey(33) < 0: if (capture.get(cv2.CAP_PROP_POS_FRAMES) == capture.get(cv2.CAP_PROP_FRAME_COUNT)): capture.set(cv2.CAP_PROP_POS_FRAMES, 0) ret, frame = capture.read() print(f"현재 프레임 : {capture.get(cv2.CAP_PROP_POS_FRAMES)}") print(f"프레임 너비 : : {capture.get(cv2.CAP_PROP_FRAME_WIDTH)}") print(f"프레임 높이: : {capture.get(cv2.CAP_PROP_FRAME_HEIGHT)}") print(f"총 프레임 : : {capture.get(cv2.CAP_PROP_FRAME_COUNT)}") print(f"FPS: : {capture.get(cv2.CAP_PROP_FPS)}") print(f"코덱 코드 : : {capture.get(cv2.CAP_PROP_FOURCC)}") print(f"프레임 플레이 타임 : : {capture.get(cv2.CAP_PROP_POS_MSEC)} ms") cv2.imshow("videoframe", frame) capture.release() cv2.destroyAllWindows() """ VideoCapture 메서드 메서드 의미 capture.isOpened() 동영상 파일 열기 성공 여부 확인 capture.open(filename) 동영상 파일 열기 capture.set(propid, value) 동영상 속성 설정 capture.get(propid) 동영상 속성 반환 capture.release() 동영상 파일을 닫고 메모리 해제 VideoCapture 속성 속성 의미 비고 cv2.CAP_PROP_FRAME_WIDTH 프레임의 너비 - cv2.CAP_PROP_FRAME_HEIGHT 프레임의 높이 - cv2.CAP_PROP_FRAME_COUNT 총 프레임 수 - cv2.CAP_PROP_FPS 프레임 속도 - cv2.CAP_PROP_FOURCC 코덱 코드 - cv2.CAP_PROP_BRIGHTNESS 이미지 밝기 카메라만 해당 cv2.CAP_PROP_CONTRAST 이미지 대비 카메라만 해당 cv2.CAP_PROP_SATURATION 이미지 채도 카메라만 해당 cv2.CAP_PROP_HUE 이미지 색상 카메라만 해당 cv2.CAP_PROP_GAIN 이미지 게인 카메라만 해당 cv2.CAP_PROP_EXPOSURE 이미지 노출 카메라만 해당 cv2.CAP_PROP_POS_MSEC 프레임 재생 시간 ms 반환 cv2.CAP_PROP_POS_FRAMES 현재 프레임 프레임의 총 개수 미만 CAP_PROP_POS_AVI_RATIO 비디오 파일 상대 위치 0 = 시작, 1 = 끝"""
핵심 코드
capture = cv2.VideoCapture("F:\dev\opencv\image\oppen.mp4")
capture = cv2.VideoCapture(fileName) 는 파일경로(fileName)의 동영상 파일을 불러 옵니다.
코드참조 : https://github.com/CBike/opencv/blob/master/video_capture.py
while cv2.waitKey(33) < 0: if (capture.get(cv2.CAP_PROP_POS_FRAMES) == capture.get(cv2.CAP_PROP_FRAME_COUNT)): capture.set(cv2.CAP_PROP_POS_FRAMES, 0)
capture 객체의 속성 반환 매서드(caputre.get)로 비디오의 속성을 반환합니다.
동영상의 현재 프레임수(cv2.CAP_PROP_POS_FRAMES), 동영상의 총 프레임수(cv2.CAP_PROP_FRAME_COUNT)
를 비교하여 현재 프레임이 총 프레임 수와 같다면, 현재 재생되고 있는 프레임은 가장 마지막이 되므로,
capture(비디오)객체의 속성 설정 메서드(capture.get)으로 동영상의 현재 프레임을 초기화 합니다.
VideoCapture 메서드
메서드 의미 .isOpend() 동영상 파일 열기 성공 여부 확인 .open(filename) 동영상 파일 열기. param(filename) : 파일 경로 .set(propid, value) 동영상 속성 설정. param(propid) : 속성 . param(value) : 속성 값 .get(propid) 동영상 속성 반환. .release() 동영상 파일을 닫고 메모리 해제 VideoCapture 속성
속성 의미 비고 cv2.CAP_PROP_FRAME_WIDTH 프레임의 너비 - cv2.CAP_PROP_FRAME_HEIGHT 프레임의 높이 - cv2.CAP_PROP_FRAME_COUNT 총 프레임 수 - cv2.CAP_PROP_FPS 프레임 속도 - cv2.CAP_PROP_FOURCC 코덱 코드 - cv2.CAP_PROP_BRIGHTNESS 이미지 밝기 카메라 객체에만 해당 cv2.CAP_PROP_CONTRAST 이미지 대비 카메라 객체에만 해당 cv2.CAP_PROP_SATURATION 이미지 채도 카메라 객체에만 해당 cv2.CAP_PROP_HUE 이미지 색상 카메라 객체에만 해당 cv2.CAP_PROP_GAIN 이미지 게인 카메라 객체에만 해당 cv2.CAP_PROP_EXPOSURE 이미지 노출 카메라 객체에만 해당 cv2.CAP_PROP_POS_MSEC 프레임 재생 시간 ms 반환 cv2.CAP_PROP_POS_FRAMES 현재 프레임 프레임 총 개수 이하 CAP_PROP_POS_AVI_RATIO 비디오의 파일 상대 위치 0 = 시작, 1 = 끝 출력 결과
'Python study > opencv' 카테고리의 다른 글
회전(Rotate) (0) 2023.11.30 대칭(Flip, Symmetry) (0) 2023.11.30 opencv - 이미지 다루기 (0) 2023.11.29 Opencv- 영상다루기 (0) 2022.03.24 opencv_도형 그리기 (0) 2022.03.15