cv2.VideoCapture(index, apiPreference=None) -> retval
cv2.VideoCapture.open(index, apiPreference=None) -> retval
cv2.VideoCapture.isOpened() -> retval
cv2.VideoCapture.read(image=None) -> retval, image
import sys
import cv2
# 기본 카메라 장치 열기
cap = cv2.VideoCapture(0)
if not cap.isOpened():
print('camera open failed!')
sys.exit()
# 카메라 프레임 처리
while True:
# 카메라로부터 프레임을 정상적으로 받아오면 ret에는 True, frame에는 해당프레임이 저장됨.
ret, frame = cap.read()
if not ret:
break
# 그레이 스케일로 변환
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', frame)
cv2.imshow('gray', gray)
# 일정시간(e.g. 10ms) 기다린 후 다음 프레임 처리. 만약 ESC 키를 누르면 while 루프 종료.
if cv2.waitKey(1) == 27: # ESC
break
cap.release() # 사용한 자원 해제
cv2.destroyAllWindows()
cv2.VideoCapture(filename, apiPreference=None) -> retval
cv2.VideoCapture.open(filename, apiPreference=None) -> retval
cv2.VideoCapture.get(propId) -> retval
cv2.VideoCapture.set(propId, value) -> retval
# 비디오 파일 열기
cap = cv2.VideoCapture('video1.mp4')
# 초당 프레임 수
fps = cap.get(cv2.CAP_PROP_FPS)
delay = round(1000 / fps)
# 비디오 매 프레임 처리
while True:
ret, frame = cap.read()
if not ret:
break
# 그레이 스케일 변환
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', frame)
cv2.imshow('gray', gray)
if cv2.waitKey(delay) == 27:
break
cap.release()
cv2.destroyAllWindows()
Reference
1) 제로베이스 데이터스쿨 강의자료