모폴리지는 영상을 형태학적 관점에서 보고 접근하는 방법이라고 한다.
이 기법은 영상처리에서 영상 내에 존재하는 특정 객체의 형태를 변형시키는 용도로 사용된다.
주로 이진 영상 처리를 할 때 사용하는데 컬러 영상에서도 가능하다고 한다. 컬러 영상에서는 다음에 다시 한 번 이야기를 하도록 하겠다.
필자는 이 모폴리지 기법을 통해 영상에서 잡음을 제거, 객체의 모양을 기술하는 용도로 사용을 할 것이다.
대표적으로 모폴리지 기법에는 침식, 팽창, 열림, 닫힘 등의 연산 기법들이 있다.
필자는 아직 수학적 지식이 부족하므로 설명을 잘 하지 못하겠으니 수학적 내용으로는 알아서 공부하길 바란다. 필자도 따른 블로그나 강의를 보면서 공부했다.
[모폴리지 연산 - 팽창]
필터의 크기 및 사용 횟수에 따라 객체 내부에 있는 작은 구멍들을 사라지게 할 수 있다. 이 팽창 연산은 물체를 확대시키는 효과를 가지고 있다. 즉, 이미지 상의 픽셀을 모든 다른 픽셀들로 확대한다고 보면 된다.
OpenCV 라이브러리에서는 dilate() 함수를 제공한다고 한다.
[모폴리지 연산 - 침식]
이미지 상의 물체를 축소하는 역할을 한다. 필터의 크기 및 사용 횟수에 따라 작은 덩어리드의 객체들을 사라지게 할 수 있는데 정해진 영역 내에서 가장 작은 값을 픽셀 중심부의 값으로 바꾸는 최소값 필터의 역할을 한다.
OpenCV 라이브러리에서는 erode() 함수를 제공한다고 한다.
[모폴리지 연산 - 열림]
열기 연산은 일반적으로 객체의 외곽선을 부드럽게 만들어주며 가늘게 돌출한 부위를 제거하는 역할과 잡음도 제거하는 역할을 한다.
이 열기 연산은 침식 연산과 팽창 연산의 조합인데 이미지에 먼저 침식 연산을 적용시키고 그 결과에 팽창 연산을 적용하는 것이다. 이 결과로 인해 이미지에서 잡음과 돌출 부위들이 제거되지만 물체의 크기는 보존이 된다.
[모폴리지 연산 - 닫힘]
닫힘 연산은 열림 연산과 유사하지만 두 동작의 적용 순서가 반대다.
먼저, 팽창 연산을 적용시키고 난 결과를 침식 연산에 적용시킨다. 이 닫힘 연산은 좁은 틈을 메꾸며, 물체의 경계를 다듬는 효과가 있으며 이 때 물체의 원래 크기는 보존된다.