Python OpenCV 강좌 : 제 4강 - VIDEO 출력

   

Video 출력


1 동영상 파일에서 이미지를 얻어와 프레임을 재생할 수 있습니다.



Main Code


import cv2

capture = cv2.VideoCapture("Image/Star.mp4")

while True:
    if(capture.get(cv2.CAP_PROP_POS_FRAMES) == capture.get(cv2.CAP_PROP_FRAME_COUNT)):
        capture.open("Image/Star.mp4")

    ret, frame = capture.read()
    cv2.imshow("VideoFrame", frame)

    if cv2.waitKey(33) > 0: break

capture.release()
cv2.destroyAllWindows()



Detailed Code


capture = cv2.VideoCapture("Image/Star.mp4")

cv2.VideoCapture("경로")을 이용하여 동영상 파일에서 프레임을 받아옵니다.



if(capture.get(cv2.CAP_PROP_POS_FRAMES) == capture.get(cv2.CAP_PROP_FRAME_COUNT)):
    capture.open("Image/Star.mp4")

if문을 이용하여 가장 처음 현재 프레임 개수총 프레임 개수를 비교합니다.

capture.get(속성)을 이용하여 capture속성을 반환합니다.

cv2.CAP_PROP_POS_FRAMES현재 프레임 개수를 의미합니다.

cv2.CAP_PROP_FRAME_COUNT총 프레임 개수를 의미합니다.

같을 경우, 마지막 프레임이므로, capture.open(경로)를 이용하여 다시 동영상 파일을 불러옵니다.



if cv2.waitKey(33) > 0: break

cv2.waitkey(time)을 이용하여 33ms마다 프레임을 재생합니다.

어떤 키라도 누를 경우, break하여 while문을 종료합니다.



Additional Information


VideoCapture 함수

capture.get(속성) : VideoCapture속성을 반환합니다.

capture.grab() : Frame호출 성공 유/무를 반환합니다.

capture.isOpened() : VideoCapture성공 유/무를 반환합니다.

capture.open(카메라 장치 번호 또는 경로) : 카메라동영상 파일을 엽니다.

capture.release() : VideoCapture장치를 닫고 메모리를 해제합니다.

capture.retrieve() : VideoCapture프레임플래그를 반환합니다.

capture.set(속성, 값) : VideoCapture속성을 설정합니다.



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 = 끝



Result


2



도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post Python OpenCV 강좌 : 제 5강 - 대칭 ⤧  Previous post Python OpenCV 강좌 : 제 3강 - Image 출력