[파이썬] opencv-python 비디오 스트림에서 객체 추출
OpenCV-Python은 컴퓨터 비전 및 이미지 처리 작업을 수행하기 위한 강력한 도구입니다. 이 블로그 포스트에서는 OpenCV-Python을 사용하여 비디오 스트림에서 객체를 추출하는 방법을 알아보겠습니다.
준비물
이 예제를 따라하기 위해선 다음과 같은 준비물이 필요합니다:
- Python 3.x 설치
- OpenCV-Python 라이브러리 설치 (
pip install opencv-python
명령어로 설치 가능)
비디오 스트림에서 객체 추출하기
아래 예제 코드를 사용하여 비디오 스트림에서 객체를 추출할 수 있습니다.
import cv2
# 비디오 파일 경로 혹은 웹카메라 번호를 지정합니다.
video_path = 'path/to/video/file.mp4' # 비디오 파일 경로
# video_path = 0 # 웹카메라
# OpenCV 비디오 캡처 객체를 생성합니다.
cap = cv2.VideoCapture(video_path)
# 객체 추출을 위한 Cascade Classifier 파일 경로를 지정합니다.
cascade_path = 'path/to/cascade/classifier.xml'
# Cascade Classifier 객체를 생성합니다.
face_cascade = cv2.CascadeClassifier(cascade_path)
# 비디오 스트림을 반복하며 객체 추출을 수행합니다.
while True:
# 비디오 프레임을 읽어옵니다.
ret, frame = cap.read()
# 비디오 프레임을 그레이 스케일로 변환합니다.
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Cascade Classifier를 사용하여 얼굴을 검출합니다.
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# 검출된 얼굴 주위에 사각형을 그려줍니다.
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 화면에 결과를 출력합니다.
cv2.imshow('Object Extraction', frame)
# 'q' 키를 누르면 종료합니다.
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 비디오 캡처 객체를 해제합니다.
cap.release()
# 윈도우를 닫습니다.
cv2.destroyAllWindows()
위 예제 코드에서는 비디오 파일을 읽어오거나 웹카메라로부터 비디오 스트림을 받아올 수 있습니다. 또한, 객체를 추출하기 위해 Cascade Classifier를 사용합니다. Cascade Classifier를 훈련시켜 얼굴, 눈, 차량 등의 객체를 검출하는데 사용할 수 있습니다.
비디오 스트림을 읽어온 후 프레임마다 그레이 스케일로 변환하여 Cascade Classifier를 사용하여 객체를 검출합니다. 검출된 객체 주위에 사각형을 그려주고, 화면에 출력합니다. 마지막으로 ‘q’ 키를 누르면 프로그램이 종료됩니다.
위 예제를 참고하여 OpenCV-Python을 사용하여 비디오 스트림에서 객체를 추출하는 방법을 익힐 수 있습니다. OpenCV-Python은 다양한 컴퓨터 비전 작업에 사용할 수 있는 강력한 도구이므로, 더 많은 기능과 사용법을 살펴보시길 권장합니다.