OpenCV에서 영상의 침식 연산은 erode() 함수를 이용하여 수행합니다. erode() 함수 원형은 다음과 같습니다.
void erode(InputArray src, OutputArray dst, InputArray kernel, Point anchor = Point(-1,-1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue()); |
|
• src |
입력 영상 |
• dst |
출력 영상. src와 같은 크기, 같은 타입입니다. |
• kernel |
구조 요소. 만약 Mat()을 지정하면 3×3 사각형 구조 요소를 사용합니다. 그 외의 구조 요소는 getStructuringElement() 함수를 이용하여 만들 수 있습니다. |
• anchor |
고정점 위치. (-1, -1)을 지정하면 구조 요소 중앙을 고정점으로 사용합니다. |
• iterations |
반복 횟수 |
• borderType |
가장자리 픽셀 확장 방식 |
• borderValue |
borderType이 BORDER_CONSTANT인 경우, 확장된 가장자리 픽셀을 채울 값. 기본값으로 설정된 morphologyDefaultBorderValue() 함수는 모든 멤버 변수가 DBL_MAX로 채워진 Scalar 객체를 반환합니다. |
erode() 함수는 꽤 많은 인자를 받을 수 있지만 src, dst, kernel 인자를 제외한 나머지는 기본값이 설정되어 있으므로 생략할 수 있습니다. erode() 함수의 세 번째 인자 kernel에는 getStructuringElement() 함수로 생성한 구조 요소 행렬을 지정할 수 있습니다. 다만 kernel 인자에 Mat() 또는 noArray()를 지정하면 3×3 정방형 구조 요소를 사용하여 침식 연산을 수행합니다.