OpenCV에서 이진화는 threshold() 함수를 이용하여 수행할 수 있습니다. threshold() 함수는 임계값을 이용한 다양한 연산을 지원하는 함수입니다. threshold() 함수 원형은 다음과 같습니다.
double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type); |
|
• src |
입력 영상 |
• dst |
출력 영상. 입력 영상과 같은 크기, 같은 타입을 갖습니다. |
• thresh |
임계값 |
• maxval |
THRESH_BINARY 또는 THRESH_BINARY_INV 방법을 사용할 때 결과 영상의 최댓값 |
• type |
임계값 연산 방법. ThresholdTypes 열거형 상수를 지정합니다. |
• 반환값 |
사용된 임계값. THRESH_OTSU 또는 THRESH_TRIANGLE 방법을 사용할 때 자동으로 결정된 임계값을 반환합니다. |
threshold() 함수의 동작은 type 인자에 의해 결정됩니다. type 인자에는 ThresholdTypes 열거형 상수를 지정할 수 있으며, threshold() 함수에서 사용할 수 있는 ThresholdTypes 열거형 상수와 의미를 표 11-1에 정리했습니다. 표 11-1에 나타난 ThresholdTypes 열거형 상수 중 THRESH_BINARY, THRESH_BINARY_INV, THRESH_TRUNC, THRESH_TOZERO, THRESH_TOZERO_INV 다섯 개의 상수가 threshold() 함수의 동작을 결정합니다. THRESH_OTSU와 THRESH_TRIANGLE 상수는 영상의 픽셀 값 분포를 분석하여 임계값을 자동으로 결정하여 이진화를 수행할 때 사용합니다.