cv2.VideoWriter 클래스
- OpenCV에서는 cv2.VideoWriter 클래스를 이용하여 일련의 프레임을 동영상 파일로 저장할 수 있음.
- 일련의 프레임은 모두 크기와 데이터 타입이 같아야 함.
Fourcc (4-문자 코드, four character code)
- 동영상 파일의 코덱, 압축 방식, 색상, 픽셀 포맷 등을 정의하는 정수값
저장을 위한 동영상 파일 열기
cv2.VideoWriter(filename, fourcc, fps, frameSize, isColor=None) ->retval
- filename : 비디오 파일 이름 (ex. video.mp4)
- fourcc : fourcc (ex. cv2.VideoWriter_fourcc(*'DIVX'))
- fps : 초당 프레임 수 (ex. 30)
- frameSize : 프레임 크기. (width, height) 튜플
- isColor : 컬러 영상이면 True, 그렇지 않으면 False.
- retval : cv2.Videowriter 객체
cv2.VideoWriter.open(filename, fourcc, fps, frameSize, isColor=None) -> retval
- retval : 성공하면 True, 실패하면 False.
비디오 파일이 준비되었는지 확인
cv2.VideoWriter.isOpened() -> retval
- retval : 성공하면 True, 실패하면 False.
프레임 저장하기
cv2.VideoWriter.wirte(image) -> None
- image : 저장할 프레임 (numpy.ndarray)
웹카메라로 입력을 동영상으로 저장하기
import sys
import cv2
cap = cv2.VideoCapture(0)
w = round(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = round(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
out = cv2.VideoWriter('output.avi', fourcc, 30, (w, h))
while True:
ret, frame = cap.read()
inversed = ~frame
out.write(inversed)
cv2.imshow('frame', frame)
cv2.imshow('inversed', inversed)
if cv2.watiKey(10) == 27:
break
cap.release()
out.release()
cv2.destroyAllWindows()
- 여기서 inversed 영상이 'output.avi'로 저장된다.