[python] OpenCV를 사용하여 이미지에서 색상 검출하기

이미지 처리에는 여러 가지 방법이 있지만, 이번 포스트에서는 Python에서 OpenCV 라이브러리를 사용하여 이미지에서 특정 색상을 검출하는 방법을 알아보겠습니다. OpenCV는 이미지 및 비디오 처리를 위한 강력한 도구이며, 컴퓨터 비전 및 영상 처리 작업에 많이 사용됩니다.

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

이 예제를 따라하기 위해서는 먼저 OpenCV를 설치해야 합니다. 다음 명령을 사용하여 OpenCV를 설치할 수 있습니다.

pip install opencv-python

이미지에서 특정 색상 검출하기

아래는 Python에서 OpenCV를 사용하여 이미지에서 특정 색상을 검출하는 간단한 예제 코드입니다.

import cv2
import numpy as np

# 이미지 불러오기
image = cv2.imread('image.jpg')

# 이미지를 HSV 색공간으로 변환
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

# 색상 범위 설정 (여기서는 파란색 범위로 설정)
lower_blue = np.array([90, 50, 50])
upper_blue = np.array([130, 255, 255])

# 이미지에서 해당 색상 영역 추출
mask = cv2.inRange(hsv_image, lower_blue, upper_blue)

# 원본 이미지에 마스크 적용
result = cv2.bitwise_and(image, image, mask=mask)

# 결과 출력
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

위 코드에서는 cv2.imread() 함수를 사용하여 이미지를 불러옵니다. 그런 다음, cv2.cvtColor() 함수를 사용하여 이미지를 HSV 색공간으로 변환합니다. HSV 색공간은 색상(Hue), 채도(Saturation), 명도(Value)로 색을 표현하는 방식입니다.

lower_blueupper_blue 변수를 사용하여 특정 색상의 범위를 지정합니다. 이 예제에서는 파란색을 검출하기 위해 파란색의 HSV 범위를 설정했습니다.

cv2.inRange() 함수를 사용하여 이미지에서 해당 색상을 추출합니다. 추출된 색상 영역은 이진 이미지로 표현됩니다.

마지막으로, cv2.bitwise_and() 함수를 사용하여 원본 이미지에 마스크를 적용합니다. 이를 통해 원본 이미지에서 해당 색상 영역만을 추출할 수 있습니다.

위 코드를 실행하면 이미지에서 파란색 영역만 추출된 결과가 나타납니다.

마무리

이번 포스트에서는 Python에서 OpenCV를 사용하여 이미지에서 특정 색상을 검출하는 방법을 알아보았습니다. 이를 응용하여 다양한 색상을 검출하고 다양한 이미지 처리 작업을 수행할 수 있습니다. OpenCV는 매우 강력한 도구이며, 컴퓨터 비전 작업에 필수적인 라이브러리입니다.

참고 자료