[파이썬] opencv-python 적응형 임계 처리

이미지 처리에서 임계 처리는 이미지를 이진 이미지로 변환하는 과정입니다. 적응형 임계 처리(Adaptive Thresholding)는 각 픽셀에 대해 주변 픽셀의 밝기에 따라 임계값을 결정하는 방법입니다. 이는 여러 가지 조명 조건에서도 적용할 수 있는 강력한 기술입니다.

Python에서 OpenCV를 사용하여 적응형 임계 처리를 수행하는 방법에 대해 알아보겠습니다.

필수 패키지 설치

OpenCV-Python을 설치하기 위해 아래 명령어를 사용합니다:

pip install opencv-python

적응형 임계 처리 수행하기

다음은 OpenCV-Python을 사용하여 적응형 임계 처리를 수행하는 예제 코드입니다:

import cv2

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

# 적응형 임계 처리 적용
threshold = cv2.adaptiveThreshold(image, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)

# 결과 출력
cv2.imshow('Adaptive Threshold', threshold)
cv2.waitKey(0)
cv2.destroyAllWindows()

위의 코드에서 image.jpg는 처리할 이미지 파일의 경로입니다. cv2.imread() 함수를 사용하여 이미지를 불러온 후, cv2.adaptiveThreshold() 함수를 사용하여 적응형 임계 처리를 수행합니다. 이 함수는 다음과 같은 인자를 받습니다:

결과 이미지를 출력하기 위해 cv2.imshow() 함수를 사용합니다. cv2.waitKey() 함수는 키보드 입력을 기다리는 역할을 하며, cv2.destroyAllWindows() 함수는 모든 창을 닫습니다.

실행 결과 확인

위의 예제 코드를 실행하면 Adaptive Threshold라는 창에서 적용된 적응형 임계 처리를 확인할 수 있습니다.

참고: 적응형 임계 처리를 수행할 때, 이미지의 색상 채널 수에 따라 다른 함수를 사용해야 합니다. 예를 들어, 3채널(BGR) 이미지에 대해서는 cv2.adaptiveThreshold() 함수의 인자로 cv2.THRESH_BINARY 또는 cv2.THRESH_BINARY_INV를 사용하고, 1채널(그레이스케일) 이미지에 대해서는 cv2.ADAPTIVE_THRESH_MEAN_C 또는 cv2.ADAPTIVE_THRESH_GAUSSIAN_C를 사용해야 합니다.

적응형 임계 처리는 다양한 이미지 처리 작업에 유용한 기술입니다. OpenCV-Python을 사용하면 간단하게 적용할 수 있으므로, 이미지 처리 프로젝트를 진행할 때 유용한 도구로 활용할 수 있습니다.