上海交通大学
医学图像处理
数学形态学一个应用是分水岭算法,为了便于理解,可以将图像的灰度空间与地球表面的地形高度相类比,据此,发明了应用于图像领域的分水岭算法。
测地线距离
假设,如下图所示的一个岛屿,要从点走到点,虚线所表示的是最短的直线距离,也就是欧式距离,考虑到现实情况,不能穿过水面到达目标地点,所以,能够从起点到终点的实际通行路线中最短的距离成为测地线距离。
通过以上分析,给出测地线距离的定义:
给定指定连通域,测地线距离就是中两个像素点和之间的最短(可执行)路径的长度,用公式定义如下:
测地线影响域(Geodesic Influence Zone,IZ)
如下图所示,假定一个连通域包含了若干个子区域,用公式表示所表示的测地线影响域为:
以上公式可以理解为,区域中的像素点到域的测地线距离比其他域更小的点的轨迹的集合,也就是以域中的种子点出发,其测地线距离比其他域的种子点都要小的点集所构成的区域。如下图所示:
测地线影响域的skeleton(SKIZ)
SKIZ表示区域中的点不属于任何一个测地线影响域,也就是域中的点到两个测地线影响域的中测地线距离相等。区域中构成的SKIZ,记作,用公式的表述如下:
注意:, 表示区域以外的中的所有点的集合集合
分水岭算法
如下图所示的山脉地形图,包含山谷和山峰,在水平面不断上升的过程中,会逐渐淹没掉一些较低的区域,而为了防止水溢出,需要不断在山脊上修建大坝,这个过程不断进行,最后会得到一个区域分割的效果。
在一副图像上实现分水岭算法,与上述过程相似,只不过是通过灰度值充当水平面的角色,对图像进行不断的填埋,最后得到区域分割的效果图。
如上图所示的动画中,不断用灰度值代表的水平面淹没图像中的最小值,最后得到分割后的图像。综上,分水岭算法的步骤可以总结如下:
-
按照图像灰度值对图像中的所有像素进行排序;
-
将最小的灰度值作为起始点,该灰度值也是初始阈值;
-
通过每次迭代加1的方式增加阈值,如果找到另外一个局部最小点,将其添加到最小点列表,然后计算和其他已存在的最小点的SKIZ,否则,计算该点和已经存在的最小点列表计算SKIZ
步骤3的过程可以理解为:以起始点为中心进行区域增长,区域增长的过程会不断接触新的邻域,而通过计算SKIZ距离的方式分配(区域增长所接触到的)邻域内的像素点,分配邻域内像素点的类别。 -
重复步骤3,直到所有的像素点都被分类到“盆地”(区域),或者阈值超过了最大的灰度。
如下图所示,另外一种分水岭算法的原理是,指定初始的种子点,只对种子点所在的邻域像素进行分类,而不考虑其他区域。
分水岭算法的应用实例
如下图所示的图片,以最小点开始,进行分水岭算法,会将整幅图分割成许多小区域,造成过分割的效果。为了解决这一问题,有以下三种解决方案:
- 通过一些平滑运算(如高斯平滑)抹掉原图中的一些较小的像素点;
- 增加分水岭算法的初始阈值,通过分水岭算法直接抹掉一些较小的像素点;
-
通过其他算法,把已经混合在一起的一些小区域进行组合,之后在通过分水岭算法分割。
最后,通过合并一些小区域再利用分水岭算法进行分割的效果如下图所示:
如下图所示,展示了通过分水岭算法分割血细胞的流程:
网友评论