Watershed
이미지 처리 연구에서 분수령은 회색조 이미지에 정의된 변환입니다. 이름은 은유적으로 인접한 배수 분지를 분리하는 지질학적 유역 또는 배수 분할을 나타냅니다. 유역 변환은 각 점의 밝기가 높이를 나타내는 지형도처럼 작동하는 이미지를 처리하고 능선의 상단을 따라 이어지는 선을 찾습니다.
About
영상을 빨리 분할해 동일한 영역으로 만들기 위해 사용하는 영상처리 알고리즘.
- 영상이 위상적 입체감을 보여준다는 아이디어에 따름.
- 동일한 영역은 상대적으로 급격한 에지로 기술된 평탄한 분지에 대응.
- 즉, 워터쉐드 알고리즘의 원래 버전이 영상을 과도하게 분할해 여러 개의 작은 영역을 만든다.
- 영상 분할에 대한 정의를 유도하는 미리 정의된 마커 집합을 사용.
워터쉐드는 영상 분할 알고리즘 중 하나이다. "Use of Watershed in Contour Detection"이라는 논문에서 1979년 처음 나왔다. 영상의 필섹 값을 2차원 지형으로 생각하고, 위 아래 방향에서 물을 채우는 방식이다.
영상을 분할하는 방법에 있어서는 크게 2가지로 나뉜다.
- Edge-based (윤곽선 기반 영상 분할 방법)
- 경계선을 기반으로 의미있는 영역들을 추출하는 방법이다. 경계선을 위주로 Detect 하다 보니 잡음에 민감하고, 끊어진 형태, 즉 폐곡선 형태의 경계선을 얻기 어려운 단점이 있다.
- Region-based (영역 기반 영상 분할 방법)
- 각 픽셀 간 명암도의 유사성에 기반한 방법으로 잡음이 많은 환경에서 물체를 분할하는데 적합하다. 그러나 번짐현상이 있는 영상에서 쓰기엔 적절하지 않다.
워터쉐드는 영역기반 알고리즘이다.
- 높은 값을 갖는 픽셀들을 봉우리(Peak) 또는 워터쉐드 라인(WaterShed Line)이라고 하고,
- 낮은 값을 갖는 픽셀들을 골짜기(Valley) 또는 국부 최소값(Regionalminimum)이라고 표현한다. 영상 내에서 픽셀들의 집합을 하나의 지형으로 간주하고 높낮이를 분석하는 방법이다.
이는 크게 두가지 방법으로 나뉜다.
- 첫번째는 Rainfall 방법인데 이는 지형의 고도가 높은 지점에서 물방울을 떨어뜨려(?) 고도가 낮은 골짜기에 물 웅덩이를 만드는 방법이고,
- 두번째는 Flooding 방법인데, 물을 떨어뜨리지 않고서 고도가 낮은 골짜기부터 물을 채워 물 웅덩이를 만드는 방법이다.
See also
- Digital image processing
- Flood fill
- cv2.watershed
Favorite site
- Wikipedia (en) Watershed (image processing)
- [추천] The Watershed Transformation page
- OpenCV: Image Segmentation with Watershed Algorithm
- OpenCV #5-4 Example (워터쉐드를 이용한 영상 분할)
- OpenCV Python 강좌 - Watershed 알고리즘을 사용한 영상 분할(Image Segmentation) - 멈춤보단 천천히라도
- Python - OpenCV (12) : Segmentation with Watershed — 준세 단칸방
- Watershed 알고리즘을 이용한 이미지 분할 — gramman 0.1 documentation
- Python과 OpenCV – 28 : Watershed 알고리즘을 이용한 이미지 분할 – GIS Developer
- OpenCV 프로젝트 : 7.4 - 실전 워크숍 : 네이버 블로그
- ( 파이썬으로 만드는 OpenCV 프로젝트🔥) 7장. 영상 분할