分水岭算法的应用

上海交通大学
医学图像处理

数学形态学一个应用是分水岭算法,为了便于理解,可以将图像的灰度空间与地球表面的地形高度相类比,据此,发明了应用于图像领域的分水岭算法。

测地线距离

假设,如下图所示的一个岛屿,要从点走到点,虚线所表示的是最短的直线距离,也就是欧式距离,考虑到现实情况,不能穿过水面到达目标地点,所以,能够从起点到终点的实际通行路线中最短的距离成为测地线距离。

通过以上分析,给出测地线距离的定义:

给定指定连通域,测地线距离就是中两个像素点和之间的最短(可执行)路径的长度,用公式定义如下:

测地线影响域(Geodesic Influence Zone,IZ)

如下图所示,假定一个连通域包含了若干个子区域,用公式表示所表示的测地线影响域为:

以上公式可以理解为,区域中的像素点到域的测地线距离比其他域更小的点的轨迹的集合,也就是以域中的种子点出发,其测地线距离比其他域的种子点都要小的点集所构成的区域。如下图所示:

测地线影响域的skeleton(SKIZ)

SKIZ表示区域中的点不属于任何一个测地线影响域,也就是域中的点到两个测地线影响域的中测地线距离相等。区域中构成的SKIZ,记作,用公式的表述如下:

注意:, 表示区域以外的中的所有点的集合集合

分水岭算法

如下图所示的山脉地形图,包含山谷和山峰,在水平面不断上升的过程中,会逐渐淹没掉一些较低的区域,而为了防止水溢出,需要不断在山脊上修建大坝,这个过程不断进行,最后会得到一个区域分割的效果。


在一副图像上实现分水岭算法,与上述过程相似,只不过是通过灰度值充当水平面的角色,对图像进行不断的填埋,最后得到区域分割的效果图。

如上图所示的动画中,不断用灰度值代表的水平面淹没图像中的最小值,最后得到分割后的图像。综上,分水岭算法的步骤可以总结如下:

  1. 按照图像灰度值对图像中的所有像素进行排序;

  2. 将最小的灰度值作为起始点,该灰度值也是初始阈值;

  3. 通过每次迭代加1的方式增加阈值,如果找到另外一个局部最小点,将其添加到最小点列表,然后计算和其他已存在的最小点的SKIZ,否则,计算该点和已经存在的最小点列表计算SKIZ
    步骤3的过程可以理解为:以起始点为中心进行区域增长,区域增长的过程会不断接触新的邻域,而通过计算SKIZ距离的方式分配(区域增长所接触到的)邻域内的像素点,分配邻域内像素点的类别。

  4. 重复步骤3,直到所有的像素点都被分类到“盆地”(区域),或者阈值超过了最大的灰度。

如下图所示,另外一种分水岭算法的原理是,指定初始的种子点,只对种子点所在的邻域像素进行分类,而不考虑其他区域。


分水岭算法的应用实例

如下图所示的图片,以最小点开始,进行分水岭算法,会将整幅图分割成许多小区域,造成过分割的效果。为了解决这一问题,有以下三种解决方案:

  • 通过一些平滑运算(如高斯平滑)抹掉原图中的一些较小的像素点;
  • 增加分水岭算法的初始阈值,通过分水岭算法直接抹掉一些较小的像素点;
  • 通过其他算法,把已经混合在一起的一些小区域进行组合,之后在通过分水岭算法分割。


最后,通过合并一些小区域再利用分水岭算法进行分割的效果如下图所示:


如下图所示,展示了通过分水岭算法分割血细胞的流程:


你可能感兴趣的:(分水岭算法的应用)