OpenCV에서 구조 요소는 원소 값이 0 또는 1로 구성된 CV_8UC1 타입의 Mat 행렬로 표현합니다. 구조 요소 행렬에서 값이 1인 원소만을 이용하여 구조 요소의 모양을 결정합니다. OpenCV는 널리 사용되는 모양의 구조 요소 행렬을 간단하게 생성할 수 있도록 getStructuringElement() 함수를 제공합니다. getStructuringElement() 함수 원형은 다음과 같습니다.
Mat getStructuringElement(int shape, Size ksize, Point anchor = Point(-1,-1)); |
|
• shape |
구조 요소의 모양 |
• ksize |
구조 요소의 크기 |
• anchor |
MORPH_CROSS 모양의 구조 요소에서 십자가 중심 좌표. Point(-1, -1)을 지정하면 구조 요소 중앙을 십자가 중심 좌표로 사용합니다. |
• 반환값 |
구조 요소 행렬 |
getStructuringElement() 함수는 지정한 모양과 크기에 해당하는 구조 요소 행렬을 반환합니다. getStructuringElement() 함수의 첫 번째 인자 shape은 구조 요소의 모양을 결정하는 역할을 하며, MorphShapes 열거형 상수 중 하나를 지정할 수 있습니다. getStructuringElement() 함수에서 사용할 수 있는 MorphShapes 열거형 상수와 의미를 표 11-2에 나타냈습니다. 구조 요소의 크기는 ksize 인자를 통해 지정하며, 보통 가로와 세로 크기를 모두 홀수로 지정합니다.
▼ 표 11-2 MorphShapes 열거형 상수
MorphShapes 열거형 상수 |
설명 |
MORPH_RECT |
사각형 모양의 구조 요소 |
MORPH_CROSS |
십자가 모양의 구조 요소 |
MORPH_ELLIPSE |
타원 모양의 구조 요소. 지정한 구조 요소 크기의 사각형에 내접하는 타원을 이용합니다. |