[ch02] Python 기초 사용법 - 카메라와 동영상 처리하기2

빨주노·2021년 8월 10일
0

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') # *'DIVX' == 'D', 'I', 'V', 'X'
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'로 저장된다.
profile
딥 하게 딥러닝 하는중

0개의 댓글