파이썬으로 OpenCV를 이용하여 이미지에서 얼룩 검출하기

이미지 처리를 위한 파이썬 라이브러리인 OpenCV를 사용하면 이미지에서 얼룩을 검출하는 작업을 쉽게 수행할 수 있습니다. 이번 블로그 포스트에서는 OpenCV를 사용하여 얼룩이 있는 이미지를 검출하는 방법을 알아보겠습니다.

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

먼저 OpenCV를 설치해야 합니다. 아래의 명령어로 OpenCV를 설치할 수 있습니다.

pip install opencv-python

이미지 로드하기

검출 작업을 위해 먼저 얼룩이 있는 이미지를 로드해야 합니다. OpenCV의 cv2.imread() 함수를 사용하여 이미지를 로드할 수 있습니다. 예를 들어, 다음과 같이 이미지를 로드할 수 있습니다.

import cv2

image = cv2.imread('image.jpg')

이미지 전처리하기

이미지를 로드한 후에는 전처리 작업을 수행해야 합니다. 전처리는 이미지를 검출하기 쉽게 만들어주는 작업으로, 주로 이미지의 밝기 조절, 색상 변환 등을 수행합니다. 예를 들어, 다음과 같이 이미지를 그레이스케일로 변환할 수 있습니다.

gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

얼룩 검출하기

전처리된 이미지에서 얼룩을 검출하는 작업을 수행할 수 있습니다. OpenCV의 cv2.findContours() 함수를 사용하여 이미지에서 윤곽을 검출할 수 있습니다. 예를 들어, 다음과 같이 얼룩을 검출할 수 있습니다.

contours, hierarchy = cv2.findContours(binary_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

얼룩 표시하기

검출된 얼룩을 원본 이미지에 표시할 수 있습니다. cv2.drawContours() 함수를 사용하여 표시할 수 있습니다. 예를 들어, 다음과 같이 얼룩을 표시할 수 있습니다.

cv2.drawContours(image, contours, -1, (0, 0, 255), 3)

결과 확인하기

검출된 얼룩이 표시된 이미지를 확인할 수 있습니다. 아래의 예시 코드를 실행하여 결과를 확인할 수 있습니다.

import cv2

# 이미지 로드하기
image = cv2.imread('image.jpg')

# 이미지 전처리하기
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 얼룩 검출하기
contours, hierarchy = cv2.findContours(gray_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 얼룩 표시하기
cv2.drawContours(image, contours, -1, (0, 0, 255), 3)

# 결과 이미지 출력하기
cv2.imshow('Result', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

위의 코드를 실행하면 얼룩이 있는 이미지에서 얼룩이 검출된 결과를 확인할 수 있습니다.

이번 포스트에서는 OpenCV를 사용하여 이미지에서 얼룩을 검출하는 방법을 알아보았습니다. OpenCV를 활용하면 다양한 이미지 처리 작업을 수행할 수 있으므로, 이미지 처리에 관심이 있다면 OpenCV를 익히는 것을 추천합니다.

참고 자료