[Python] 파이썬에서 Opencv를 이용해 웹캠 영상 읽어오기 및 저장
자 이번엔 노트북에 달린 카메라를 이용해 영상을 받아 출력해보자
우선 코드를 보자
import cv2 cap = cv2.VideoCapture(0) print('width :%d, height : %d' % (cap.get(3), cap.get(4))) while(True): ret, frame = cap.read() # Read 결과와 frame if(ret) : gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 입력 받은 화면 Gray로 변환 cv2.imshow('frame_color', frame) # 컬러 화면 출력 cv2.imshow('frame_gray', gray) # Gray 화면 출력 if cv2.waitKey(1) == ord('q'): break cap.release() cv2.destroyAllWindows()
opencv를 import 해준 뒤
VideoCapture() 함수를 이용해 웹 캠을 연결 한다.
전달 인자는 디바이스 아이디를 넘겨주는데 0을 넣어주면
보통 웹캠이나 카메라에 연결 된다.
print 문으로 기본 웹캠의 width 와 height를 출력해보도록 하자
프로그램을 종료하려면 q 버튼을 눌러주면 종료!
아래는 코드 실행 결과
[컬러 출력 결과] |
[Gray 출력 결과] |
[출력된 카메라 해상도] |
영상 저장은 cv2.VideoWriter_fourcc() 를 이용하면 가능하다
매개변수로 코덱을 넘겨주는데 'D','I','V','X' 와 같이 넘겨주거나
아래와 같이 *'DIVX' 로 넘겨주면 됨
import cv2 cap = cv2.VideoCapture(0) print('width :%d, height : %d' % (cap.get(3), cap.get(4))) fourcc = cv2.VideoWriter_fourcc(*'DIVX') out = cv2.VideoWriter('save.avi', fourcc, 25.0, (640, 480)) while(True): ret, frame = cap.read() # Read 결과와 frame if(ret) : gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 입력 받은 화면 Gray로 변환 cv2.imshow('frame_color', frame) # 컬러 화면 출력 cv2.imshow('frame_gray', gray) # Gray 화면 출력 out.write(frame) if cv2.waitKey(1) == ord('q'): breakcap.release() cv2.destroyAllWindows()
위 코드는 컬러 영상만 save.avi 로 저장하는 코드이다.
댓글
댓글 쓰기