이번 글에서는 파이썬 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 모듈은 이미지 및 동영상 처리에 매우 유용한 라이브러리입니다. 이를 활용하여 다양한 영상 처리 기술을 구현할 수 있습니다.
'파이썬 > OpenCV' 카테고리의 다른 글
파이썬 모듈 : OpenCV 윤곽선 검출 (0) | 2023.03.27 |
---|---|
파이썬 모듈 : OpenCV 가장자리 검출 (0) | 2023.03.26 |
파이썬 모듈 : OpenCV 이미지 확대, 회전, 자르기 (0) | 2023.03.25 |
파이썬 모듈 : OpenCV 읽기, 쓰기, 필터링 (0) | 2023.03.24 |
이미지의 크기 변환 cv2.resize() (0) | 2022.11.17 |