파이썬과 OpenCV를 사용한 동영상에서 색 추출하기

동영상에서 특정 색상을 추출하는 것은 컴퓨터 비전 분야에서 매우 유용한 작업 중 하나입니다. 이를 위해 파이썬과 OpenCV 라이브러리를 사용하여 동영상에서 색상을 추출하는 방법을 알아보겠습니다.

1. OpenCV 설치하기

먼저, OpenCV를 설치해야 합니다. 파이썬에서는 pip를 사용하여 간편하게 설치할 수 있습니다.

pip install opencv-python

2. 동영상 파일 불러오기

색상을 추출할 동영상 파일을 불러와야 합니다. OpenCV의 VideoCapture 클래스를 사용하여 동영상 파일을 열 수 있습니다.

import cv2

# 동영상 파일 열기
video = cv2.VideoCapture('video.mp4')

3. 동영상에서 특정 색상 추출하기

이제 동영상에서 특정 색상을 추출하는 작업을 진행해보겠습니다. 여기서는 파란색을 추출하는 예제를 다루겠습니다.

import cv2
import numpy as np

# 동영상 파일 열기
video = cv2.VideoCapture('video.mp4')

while True:
    # 프레임 읽기
    ret, frame = video.read()
    
    if not ret:
        break
    
    # BGR에서 HSV로 변환
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    
    # 파란색 범위 지정
    lower_blue = np.array([110, 50, 50])
    upper_blue = np.array([130, 255, 255])
    
    # 파란색 영역을 마스크로 생성
    mask = cv2.inRange(hsv, lower_blue, upper_blue)
    
    # 원본 이미지에서 파란색 영역만 추출
    blue_image = cv2.bitwise_and(frame, frame, mask=mask)
    
    # 이미지 출력
    cv2.imshow('Blue Extraction', blue_image)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 비디오 파일과 윈도우 창 닫기
video.release()
cv2.destroyAllWindows()

위의 코드에서 lower_blueupper_blue 변수를 설정하여 추출할 색상의 범위를 지정할 수 있습니다. 이 예제에서는 파란색을 추출하기 위해 범위를 110부터 130까지로 지정했습니다.

4. 실행하기

위의 코드를 실행하면 동영상 파일이 열리고, 파란색이 추출된 영상이 새로운 창에 출력됩니다. 출력 창에서 ‘q’ 키를 누르면 프로그램이 종료됩니다.

결론

파이썬과 OpenCV를 사용하여 동영상에서 색상을 추출하는 방법을 알아보았습니다. 이를 응용하여 다양한 색상을 추출하거나 다른 작업에 활용할 수 있습니다. OpenCV는 컴퓨터 비전 작업에 많이 사용되는 강력한 라이브러리이므로, 다양한 기능을 익혀두면 유용하게 활용할 수 있을 것입니다.

참고문헌: