分水的算法
㈠ 分水岭算法的应用
数学形态学一个应用是分水岭算法,为了便于理解,可以将图像的灰度空间与地球表面的地形高度相类比,据此,发明了应用于图像领域的分水岭算法。
假设,如下图所示的一个岛屿,要从 点走到 点,虚线所表示的是最短的直线距离,也就是欧式距离,考虑到现实情况,不能穿过水面到达目标地点,所以,能够从起点到终点的实际通行路线中最短的距离成为测地线距离。
通过以上分析,给出测地线距离的定义:
给定指定连通域 ,测地线距离就是 中两个像素点 和 之间的最短(可执行)路径的长度,用公式定义如下:
如下图所示,假定一个连通域 包含了若干个子区域 ,用公式表示 所表示的测地线影响域为:
以上公式可以理解为,区域 中的像素点到 域的测地线距离比其他域更小的点的轨迹的集合,也就是以 域中的种子点出发,其测地线距离比其他域的种子点都要小的点集所构成的区域。如下图所示:
SKIZ表示区域 中的点不属于任何一个测地线影响域,也就是域 中的点到两个测地线影响域的中测地线距离相等。区域 中构成 的SKIZ,记作 ,用公式的表述如下:
注意:, 表示区域 以外的 中的所有点的集合集合
如下图所示的山脉地形图,包含山谷和山峰,在水平面不断上升的过程中,会逐渐淹没掉一些较低的区域,而为了防止水溢出,需要不断在山脊上修建大坝,这个过程不断进行,最后会得到一个区域分割的效果。
在一副图像上实现分水岭算法,与上述过程相似,只不过是通过灰度值充当水平面的角色,对图像进行不断的填埋,最后得到区域分割的效果图。
如上图所示的动画中,不断用灰度值代表的水平面淹没图像中的最小值,最后得到分割后的图像。综上,分水岭算法的步骤可以总结如下:
如下图所示,另外一种分水岭算法的原理是,指定初始的种子点,只对种子点所在的邻域像素进行分类,而不考虑其他区域。
如下图所示的图片,以最小点开始,进行分水岭算法,会将整幅图分割成许多小区域,造成过分割的效果。为了解决这一问题,有以下三种解决方案:
最后,通过合并一些小区域再利用分水岭算法进行分割的效果如下图所示:
如下图所示,展示了通过分水岭算法分割血细胞的流程:
㈡ 分水岭算法的原理及相关思想的阐述是什么
首先选择最低的点,就是分水岭中最底的山谷。
然后灌水:
1 . 极值点周围的点也划分到极值点,它们属于一个区域。
2 . 在灌水的过程中根据你设定的阈值,还需要把有的区域合并。
3. 这个过程中有新的局部极值点产生,也是山谷,但不一定是最底的山谷。
最后灌满了水之后,由起始的极值点形成了一个一个的区域。