[python] OpenCV를 사용하여 이미지에서 동영상에서 특정 색상 강조하기

OpenCV는 이미지 및 비디오 처리를 위한 강력한 오픈소스 라이브러리입니다. 이 라이브러리를 사용하여 이미지나 동영상에서 특정 색상을 강조하고 싶다면 다음과 같은 방법을 사용할 수 있습니다.

필요한 라이브러리 설치하기

다음 명령을 사용하여 OpenCV 라이브러리를 설치합니다.

pip install opencv-python

이미지에서 특정 색상 강조하기

다음은 이미지에서 특정 색상을 강조하는 방법입니다.

import cv2
import numpy as np

# 이미지를 로드합니다.
image = cv2.imread("image.jpg")

# 이미지를 BGR 형식에서 HSV 형식으로 변환합니다.
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

# 강조하고자 하는 색상의 범위를 지정합니다.
lower_range = np.array([0, 100, 100])  # 강조하고자 하는 색상의 최소값
upper_range = np.array([10, 255, 255])  # 강조하고자 하는 색상의 최대값

# 범위 내에 해당하는 색상만을 강조합니다.
mask = cv2.inRange(hsv_image, lower_range, upper_range)

# 강조된 색상만을 추출합니다.
highlighted_image = cv2.bitwise_and(image, image, mask=mask)

# 결과 이미지를 표시합니다.
cv2.imshow("Highlighted Image", highlighted_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

위 코드에서는 image.jpg라는 이미지 파일을 로드하고, BGR 형식에서 HSV 형식으로 변환한 후, 강조하고자 하는 색상의 범위를 지정합니다. cv2.inRange() 함수를 사용하여 해당 색상 범위 내에 있는 픽셀만을 추출하고, cv2.bitwise_and() 함수를 사용하여 추출된 색상만을 이미지에 적용합니다. 결과 이미지를 화면에 표시합니다.

동영상에서 특정 색상 강조하기

이미지와 마찬가지로 동영상에서도 특정 색상을 강조할 수 있습니다. 다음은 동영상에서 특정 색상을 강조하는 방법입니다.

import cv2
import numpy as np

# 동영상 파일을 로드합니다.
video_capture = cv2.VideoCapture("video.mp4")

while True:
    # 현재 프레임을 읽어옵니다.
    ret, frame = video_capture.read()
    
    # 현재 프레임을 BGR 형식에서 HSV 형식으로 변환합니다.
    hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    # 강조하고자 하는 색상의 범위를 지정합니다.
    lower_range = np.array([0, 100, 100])  # 강조하고자 하는 색상의 최소값
    upper_range = np.array([10, 255, 255])  # 강조하고자 하는 색상의 최대값

    # 범위 내에 해당하는 색상만을 강조합니다.
    mask = cv2.inRange(hsv_frame, lower_range, upper_range)

    # 강조된 색상만을 추출합니다.
    highlighted_frame = cv2.bitwise_and(frame, frame, mask=mask)

    # 결과 프레임을 표시합니다.
    cv2.imshow("Highlighted Video", highlighted_frame)
    
    # 'q' 키를 누를 경우 반복문을 종료합니다.
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 비디오 캡처 객체를 해제합니다.
video_capture.release()
cv2.destroyAllWindows()

위 코드에서는 video.mp4라는 동영상 파일을 로드하고, 각 프레임을 읽어와서 BGR 형식에서 HSV 형식으로 변환한 다음, 색상 강조를 수행합니다. 마지막으로 강조된 프레임을 화면에 표시합니다. ‘q’ 키를 누를 경우 반복문이 종료되고, 동영상 재생이 중지됩니다.

이와 같이 OpenCV를 사용하여 이미지 및 동영상에서 특정 색상을 강조할 수 있습니다. 다양한 색상을 강조하고자 한다면, 적용할 색상 범위를 조정하여 원하는 결과를 얻을 수 있습니다.

참고 자료