findContours() 함수의 mode 인자에는 외곽선을 어떤 방식으로 검출할 것인지를 나타내는 검출 모드를 지정합니다. mode 인자에는 RetrievalModes 열거형 상수 중 하나를 지정할 수 있으며, 주요 RetrievalModes 열거형 상수와 의미를 표 12-1에 나타냈습니다.
▼ 표 12-1 주요 RetrievalModes 열거형 상수
RetrievalModes 열거형 상수 |
설명 |
RETR_EXTERNAL |
객체 바깥쪽 외곽선만 검색합니다. 계층 구조는 만들지 않습니다. |
RETR_LIST |
객체 바깥쪽과 안쪽 외곽선을 모두 검색합니다. 계층 구조는 만들지 않습니다. |
RETR_CCOMP |
모든 외곽선을 검색하고 2단계 계층 구조를 구성합니다. |
RETR_TREE |
모든 외곽선을 검색하고 전체 계층 구조를 구성합니다. |
findContours() 함수의 method 인자에는 검출된 외곽선 점들의 좌표를 근사화하는 방법을 지정합니다. method 인자에 지정할 수 있는 ContourApproximationModes 열거형 상수를 표 12-2에 나타냈습니다. 저장되는 외곽선 점의 개수를 줄이고 싶다면 CHAIN_APPROX_SIMPLE 상수를 사용하면 유리합니다. CHAIN_APPROX_TC89_L1 또는 CHAIN_APPROX_TC89_KCOS 방식은 점의 개수는 많이 줄어들지만 외곽선 모양에 변화가 생기므로 주의해야 합니다.
▼ 표 12-2 ContourApproximationModes 열거형 상수
ContourApproximationModes 열거형 상수 |
설명 |
CHAIN_APPROX_NONE |
모든 외곽선 점들의 좌표를 저장합니다. |
CHAIN_APPROX_SIMPLE |
외곽선 중에서 수평선, 수직선, 대각선 성분은 끝점만 저장합니다. |
CHAIN_APPROX_TC89_L1 |
Teh & Chin L1 근사화를 적용합니다. |
CHAIN_APPROX_TC89_KCOS |
Teh & Chin k cos 근사화를 적용합니다. |