반응형
1. Import Library
import sys
import cv2
import matplotlib.pyplot as plt
2. VideoCapture Class
# 원래 있던 비디오 반전 시켜줌
cap = cv2.VideoCapture('./data/Another Day of Sun.mp4')
fps = round(cap.get(cv2.CAP_PROP_FPS))
delay = round(1000 / fps)
while True:
ret, frame = cap.read()
inversed = ~frame
cv2.imshow('frame', frame)
cv2.imshow('inversed', inversed)
if cv2.waitKey(delay) == 27:
break
cap.release()
cv2.destroyAllWindows()
# 노트북 카메라 연결해서 반전 시켜줌
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
inversed = ~frame
cv2.imshow('frame', frame)
cv2.imshow('inversed', inversed)
if cv2.waitKey(10) == 27:
break
cap.release()
cv2.destroyAllWindows()
3. VideoWriter Class
- 일련의 프레임을 동영상 파일로 저장할 수 있음
- 모두 크기와 데이터 타입이 같아야 함
- Fourcc (4-문자-코드, for character code) : 영상의 코덱, 압축방식, 색상, 픽셀 포맷 등을 정의하는 정수 값
# 웹카메라 입력을 비디오로 저장
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('./data/Oh my face.mp4', fourcc, 30, (w, h))
while True:
ret, frame = cap.read()
inversed = ~frame
out.write(inversed) # 저장할 애가 inversed인지 frame인지 넣으면 됨
cv2.imshow('frame', frame)
cv2.imshow('inversed', inversed)
if cv2.waitKey(10) == 27:
break
반응형
'Data Science > OpenCV' 카테고리의 다른 글
OpenCV - Filtering (0) | 2022.01.03 |
---|---|
Start OpenCV and draw on the picture/video (0) | 2022.01.03 |
댓글