[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 로 저장하는 코드이다.

댓글

이 블로그의 인기 게시물

[MFC] 에디트 컨트롤에 계속 문자열 추가하기(List log)

[Python] OpenCv를 이용하여 마우스 위치 가져오기