카메라 동영상처리 2

매일 공부(ML)·2021년 11월 9일
0

OPEN CV

목록 보기
6/45
  1. cv2.VideoWriter클래스
  • OpenCV에서 cv2.VideoWriter 클래스 이용하여 동영상으로 저장 가능(크기와 데이터가 같음)
  1. Fourcc (4-문자코드, four character code)

https://www.fourcc.org/codecs.php

  • 동영상 파일의 코덱, 압축 방식 , 색상,픽셀 포맷 등을 정의하는 정수인 값

  • 코덱을 사용하려면 각자 환경이 구축된다.

  • VideoWriter인자: isColor 그레이스케일저장 안됨

  • fourcc: 문자 풀어쓴다라는 의미

  • 예시:

    • cv2.VideoWriter_fourcc(* 'DIVX') : DIVX MPEG-4 코덱
    • cv2.VideoWriter_fourcc(* 'XVID') : XVID MPEG-4 코덱
    • cv2.VideoWriter_fourcc(* 'FMP4') : FFMPEG MPEG-4 코덱
    • cv2.VideoWriter_fourcc(* 'X264') : H.264/AVC 코덱
    • cv2.VideoWriter_fourcc(* 'MJPG') : Motion-JPEG 코덱
  1. 저장을 위한 동영상 파일 열기
cv2.VideoWriter(filename, fourcc, fps, frameSize, isColor=None) -> retval
  • filename: 비디오 파일 이름

  • fourcc: fourcc (e.g. cv2.VideoWriter_fourcc(* 'DIVX'))

  • fps: 초당 프레임 수

  • frameSize: 프레임크기(width, height) 튜플

  • isColor: 컬러영상이면 True, 아니면 False

  • retval: cv2.VideoWriter 객체

cv2.VideoWriter.open(filename, fourcc, fps, frameSize, isColor=None) -> retval
  • retval: 성공하면 True, 실패하면 False
  1. 비디오 파일 준비되었는지 확인
cv2.VideoWriter.isOpened() -> retval
  1. 프레임 저장하기
cv2.VideoWriter.write(image) -> None
  • image : 저장할 프레임(numpy.ndarray)
  1. 웹 카메라 입력을 동영상으로 저장
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.waitKey(10) == 27:
			break
profile
성장을 도울 아카이빙 블로그

0개의 댓글