[python] 파이썬을 사용한 동영상에서의 초록 배경 제거하기

오늘은 파이썬을 이용해 동영상에서 초록 배경을 제거하는 방법에 대해 알아보겠습니다. 이를 위해 OpenCV 라이브러리를 사용할 것입니다.

초록 배경 제거하기

동영상에서 초록 배경을 제거하는 일반적인 방법은 다음과 같습니다:

  1. 동영상 불러오기: OpenCV를 사용하여 동영상을 불러옵니다.
  2. HSV 색 공간 변환: 동영상의 각 프레임을 HSV(Hue, Saturation, Value) 색 공간으로 변환합니다.
  3. 초록 배경 마스킹: HSV 값 범위를 사용하여 초록 배경을 마스킹합니다.
  4. 전경 추출: 초기 백그라운드와 마스크를 사용하여 전경을 추출합니다.
  5. 전경 합성: 전경을 새로운 배경과 합성합니다.

코드 예시

import cv2
import numpy as np

cap = cv2.VideoCapture('green_background_video.mp4')

while(cap.isOpened()):
    ret, frame = cap.read()
    
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    lower_green = np.array([40, 40, 40])
    upper_green = np.array([70, 255, 255])
    mask = cv2.inRange(hsv, lower_green, upper_green)
    
    res = cv2.bitwise_and(frame, frame, mask=mask)
    
    cv2.imshow('res', res)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

마무리

이제 코드를 실행하면 초록 배경이 제거된 동영상을 확인할 수 있을 것입니다. OpenCV를 이용하여 초록 배경을 제거하는 방법에 대해 간략하게 알아보았습니다. 이 외에도 더 많은 테크닉과 라이브러리를 사용하여 보다 정교한 배경 제거를 수행할 수 있습니다.

참고 문헌: