코드 12-3의 contours_basic() 함수에서는 RETR_LIST 검출 모드를 사용하여 findContours() 함수를 호출하였습니다. 그러므로 모든 객체의 바깥쪽과 안쪽 홀 외곽선을 모두 검출하되 부모/자식 간의 계층 정보는 얻어 오지 않습니다. 검출된 전체 외곽선 개수는 contours.size() 코드를 이용하여 알 수 있으며, 코드 12-3에서는 for 문을 0부터 contours.size()까지 반복하며 외곽선을 그립니다.
코드 12-3의 contours_basic() 함수 실행 결과를 그림 12-9에 나타냈습니다. 그림 12-9에서 src는 입력 영상으로 사용한 contours.bmp 파일이고, dst는 흰색 객체 외곽선을 다양한 색상으로 그린 결과 영상입니다. 객체 바깥쪽 외곽선과 안쪽 홀 외곽선이 모두 임의의 색상으로 그려진 것을 확인할 수 있습니다.
▲ 그림 12-9 계층 구조를 사용한 외곽선 검출과 그리기 예제 실행 결과