findContours() 함수로 검출한 외곽선 정보를 이용하여 영상 위에 외곽선을 그리고 싶다면 drawContours() 함수를 사용할 수 있습니다. drawContours() 함수 원형은 다음과 같습니다.
void drawContours(InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const Scalar& color, int thickness = 1, int lineType = LINE_8, InputArray hierarchy = noArray(), int maxLevel = INT_MAX, Point offset = Point()); |
|
• image |
외곽선을 그릴 영상 |
• contours |
findContours() 함수로 구한 전체 외곽선 정보. vector<vector<Point>> 타입의 변수를 지정합니다. |
• contourIdx |
외곽선 번호. 음수를 지정하면 전체 외곽선을 그립니다. |
• color |
외곽선 색상(또는 밝기) |
• thickness |
외곽선 두께. FILLED 또는 -1을 지정하면 외곽선 내부를 채웁니다. |
• lineType |
외곽선 타입 |
• hierarchy |
외곽선 계층 정보 |
• maxLevel |
그릴 외곽선의 최대 레벨. 이 값이 0이면 지정한 번호의 외곽선만 그리고, 1보다 같거나 크면 그에 해당하는 하위 레벨의 외곽선까지 그립니다. |
• offset |
추가적으로 지정할 외곽선 점 좌표의 오프셋(이동 변위). 지정한 좌표 크기만큼 외곽선 좌표를 이동하여 그립니다. |
drawContours() 함수는 findContours() 함수로 얻은 외곽선 정보를 이용하여 영상에 외곽선을 그립니다. 전체 외곽선을 한꺼번에 그릴 수도 있고, 특정 번호의 외곽선을 선택하여 그릴 수도 있습니다. 외곽선 계층 정보를 함께 지정할 경우, 자식 외곽선도 함께 그릴 수 있습니다.