前言
在许多实际应用中需要分割图像,但无法从背景中获得有用信息。分水岭算法(watershed algorithm)在这方面非常有效。可以把图像中的边缘转化为“山脉”,将均匀区域转化为“山谷”,这样有助于分割目标。
分水岭算法是一种基于拓扑理论的数学形态学的分割方法,基本思想是把图像看做测地学上的拓扑地貌,图像中的每一点的像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响的区域称为积水盆,而积水盆的边界则形成分水岭。
分水岭的概念和形成可以通过模拟浸入过程来说明:
在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中。随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个积水盆汇合处构筑大坝,即形成分水岭。
分水岭的计算是一个迭代标注过程。分水岭比较经典的计算方法由L.Vincent提出。在该算法中,分水岭计算分为:
- 排序。首先对每个像素的灰度级进行从低到高的排序
- 淹没。在从低到高实现淹没的过程中,对每一个局部极小值在h阶高度的影响域采用先进先出FIFO结构进行判断及标注
分水岭变换得到的是输入图像的积水盆图像,积水盆之间的边界点,就是分水岭。
- 分水岭表示输入图像的极大值点