图像处理:分水岭算法(图像分割)

图像处理:分水岭算法(图像分割)

分水岭算法

分水岭算法是一种图像区域分割法,分割的过程中将图片转化为灰度图,然后我会将灰度值看作是海拔,然后向较低点注水,这种基于地形学的解释,我们着重考虑三种点:

aZGCp6.png

  • 极小值点,该点对应一个盆地的最低点,当我们在盆地里滴一滴水的时候,由于重力作用,水最终会汇聚到该点。注意:可能存在一个最小值面,该平面内的都是极小值点。
  • 盆地的其它位置点,该位置滴的水滴会汇聚到局部最小点。
  • 盆地的边缘点,是该盆地和其它盆地交接点,在该点滴一滴水,会等概率的流向任何一个盆地。

aZ89sg.png

明白上述三种点之后,我们开始往盆地的极小值点注水,然后随着注水的深入,每一个极小值点慢慢的向外扩展,然后知道两个盆地的水汇合,汇合处就是我们需要的分水岭

从下图可以直观理解一下,首先这三块区域都含有极小值点

aZN0i9.png

然后逐渐填充就能获得分水岭(即分界线)

amhpdg.png

得到分界线就能完成图像分割:

aZUQeO.png

基于mark的分水岭算法

然后基于梯度的分水岭算法容易导致图像的过分割(极小值点过多),如以下这张图(图中噪声比较多,因而产生了许多的极小值点)

aZarDK.png

通常的mark图像,都是在某个区域定义了一些灰度层级,在这个区域的洪水淹没过程中,水平面都是从定义的高度开始的,这样可以避免一些很小的噪声极值区域的分割

ae46Wn.gif

猜你喜欢

转载自blog.csdn.net/weixin_44338712/article/details/107677450