[python] OpenCV로 이미지 윤곽선 검출하기

이미지에서 윤곽선을 검출하는 것은 컴퓨터 비전 분야에서 매우 일반적인 작업입니다. OpenCV는 이미지 처리와 컴퓨터 비전을 위한 강력한 라이브러리이며, 다양한 윤곽선 검출 알고리즘을 제공합니다. 이번 포스트에서는 OpenCV를 사용하여 이미지에서 윤곽선을 검출하는 방법을 알아보겠습니다.

필요한 패키지 설치하기

먼저, OpenCV를 설치해야 합니다. pip를 사용하여 다음 명령어를 실행하여 OpenCV 패키지를 설치할 수 있습니다.

pip install opencv-python

이미지 불러오기

먼저, 이미지를 불러와야 합니다. OpenCV의 imread 함수를 사용하여 이미지 파일을 읽을 수 있습니다.

import cv2

# 이미지 파일 경로
image_path = "image.jpg"

# 이미지 파일 읽기
image = cv2.imread(image_path)

이미지 전처리하기

윤곽선을 검출하기 전에 이미지를 전처리해야 합니다. 일반적으로 가우시안 블러를 사용하여 이미지를 흐리게 만들고, 그레이스케일로 변환합니다. 이렇게 하면 윤곽선 검출이 더 쉬워집니다.

# 가우시안 블러 적용
blurred = cv2.GaussianBlur(image, (5, 5), 0)

# 그레이스케일 변환
gray = cv2.cvtColor(blurred, cv2.COLOR_BGR2GRAY)

윤곽선 검출하기

이제 전처리된 이미지에서 윤곽선을 검출해보겠습니다. OpenCV의 findContours 함수를 사용하여 윤곽선을 찾을 수 있습니다.

# 윤곽선 검출
contours, hierarchy = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 윤곽선 그리기
cv2.drawContours(image, contours, -1, (0, 255, 0), 2)

결과 확인하기

윤곽선이 이미지에 그려진 결과를 확인해보겠습니다. imshow 함수를 사용하여 이미지를 표시할 수 있습니다.

# 결과 표시
cv2.imshow("Contours", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

위의 코드를 실행하면, 윤곽선이 이미지에 그려진 창이 표시됩니다.

결론

OpenCV를 사용하여 이미지에서 윤곽선을 검출하는 방법에 대해 알아보았습니다. 이를 통해 다양한 이미지 처리 및 컴퓨터 비전 애플리케이션을 개발할 수 있습니다. OpenCV는 윤곽선 검출 외에도 다양한 이미지 처리 기능을 제공하므로, 관심 있는 분야에서 활용할 수 있습니다.

다음은 OpenCV 공식 문서와 OpenCV 패키지의 GitHub 페이지입니다: