해당 포스트는 "OpenCV로 배우는 영상 처리 및 응용", "C++ API OpenCV 프로그래밍" 책의 내용을 요약한 것이다.
※ 모폴로지 연산
- Mat getStructuringElement(int shape, Size ksize, Point anchor=Point(-1,-1))
: 모폴로지 연산을 위한 크기 ksize, 모양 shape 요소값 1의 마스크를 반환한다. shape는 다음과 같은 값들이 있다. 만약 shape가 MORPH_RECT이라면 사각형 마스크를 갖는다. MORPH_ELLIPSE라면 ksize의 사각형에 내접한 타원 모양을 갖는 마스크를 갖는다. MORPH_CROSS라면 anchor.x와 anchor.y를 중심으로 십자형 모양을 가진다.
- 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를 kernel 마스크를 통해 침식 연산을 iterations 번 수행해 dst에 저장한다.
- void dilate(InputArray src, OutputArray dst, InputArray kernel, Point anchor = Point(-1,-1), int iterations=1, int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue())
: src를 kernel 마스크를 통해 팽창 연산을 iterations 번 수행해 dst에 저장한다.
- void morphologyEx(InputArray src, OutputArray dst, int op, InputArray kernel, Point anchor = Point(-1,-1), int iterations=1, int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue())
: src를 kernel 마스크를 통해 op에 해당하는 연산을 iterations번 수행해 dst에 저장한다. op의 값들은 다음과 같다.
1. op = MORPH_OPEN : dst = dilate(erode(src, kernel), kernel)
2. op = MORPH_CLOSE : dst = erode(dilate(src, kernel), kernel)
3. op = MORPH_GRADIENT : dst = dilate(src, kernel) - erode(src, kernel)
4. op = MORPH_TOPHAT : dst = src - open(src, kernel)
5. op = MORPH_BLACKHAT : dst = close(src, kernel) - src
'OpenCV 프로그래밍' 카테고리의 다른 글
phaseCorrelate (0) | 2017.06.27 |
---|---|
dft, idft, mulSpectrums, 저주파/고주파 통과 필터 (0) | 2017.06.26 |
getDerivKernels, Sobel, Scharr, Laplacian, LoG (0) | 2017.06.26 |
filter2D, boxFilter, bilateralFilter, blur, GaussianBlur (0) | 2017.06.25 |
경계값 채우기(copyMakeBorder, borderIntrepolate) (0) | 2017.06.25 |