파이썬/OpenCV

파이썬 모듈 : OpenCV 동영상 캡쳐&녹화

코샵 2023. 3. 28. 09:58
반응형
이번 글에서는 파이썬 cv2 모듈을 활용하여 동영상을 캡쳐하고 녹화하는 방법에 대해 알아보겠습니다.

동영상 캡쳐

동영상 캡쳐는 파이썬 cv2 모듈을 사용하여 간단하게 구현할 수 있습니다. 아래 코드는 웹캠에서 동영상을 캡쳐하는 예제입니다.

import cv2

# 웹캠에서 동영상 캡쳐
cap = cv2.VideoCapture(0)

while True:
    # 프레임 읽기
    ret, frame = cap.read()

    # 프레임 출력
    cv2.imshow('frame', frame)

    # 'q' 키를 누르면 종료
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 자원 해제
cap.release()
cv2.destroyAllWindows()

위 코드에서 cv2.VideoCapture() 함수는 웹캠으로부터 동영상을 캡쳐하기 위한 객체를 생성합니다. cap.read() 함수는 웹캠에서 한 프레임을 읽어옵니다. cv2.imshow() 함수는 읽어온 프레임을 출력합니다. cv2.waitKey() 함수는 사용자가 특정 키를 누를 때까지 대기합니다. cap.release() 함수는 자원을 해제합니다.


동영상 녹화

동영상 녹화는 파이썬 cv2 모듈을 사용하여 간단하게 구현할 수 있습니다. 아래 코드는 웹캠으로부터 동영상을 캡쳐하여 파일로 저장하는 예제입니다.

import cv2

# 웹캠에서 동영상 캡쳐
cap = cv2.VideoCapture(0)

# 녹화할 동영상의 코덱 설정
fourcc = cv2.VideoWriter_fourcc(*'XVID')

# 동영상 녹화를 위한 객체 생성
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))

while True:
    # 프레임 읽기
    ret, frame = cap.read()

    if ret:
        # 프레임 출력
        cv2.imshow('frame', frame)

        # 녹화된 동영상 저장
        out.write(frame)

    # 'q' 키를 누르면 종료
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 자원 해제
cap.release()
out.release()
cv2.destroyAllWindows()

위 코드에서 cv2.VideoWriter() 함수는 동영상 녹화를 위한 객체를 생성합니다. out.write() 함수는 프레임을 동영상 파일에 저장합니다. out.release() 함수는 동영상 녹화 객체를 해제합니다.


추가 정보

동영상 캡쳐 및 녹화 외에도 파이썬 cv2 모듈은 다양한 이미지 및 동영상 처리 기능을 제공합니다. 예를 들어, cv2.imread() 함수를 사용하여 이미지 파일을 읽어올 수 있습니다. 이 외에도 cv2.resize() 함수를 사용하여 이미지 크기를 조절하거나 cv2.cvtColor() 함수를 사용하여 이미지 색상 공간을 변환할 수 있습니다.


결론

이상으로 파이썬 cv2 모듈을 활용하여 동영상 캡쳐 및 녹화하는 방법에 대해 알아보았습니다. 파이썬 cv2 모듈은 이미지 및 동영상 처리에 매우 유용한 라이브러리입니다. 이를 활용하여 다양한 영상 처리 기술을 구현할 수 있습니다.