图像分割——分水岭算法

参考网址:https://blog.csdn.net/xihuaxi/article/details/72639149

                  https://blog.csdn.net/dcrmg/article/details/52498440

分水岭图像分割算法借助地形学概念进行图像分割,近年来广泛使用。

1. 基本原理和步骤

1)原理

分水岭方法将图像看作3-D的地形表示,即2-D的地基(对应图像空间)加上三维的高度(对应图像灰度)。

实际中建立不同目标间的分水岭的过程常借助涨水法(水从低上涨)来讨论。如图1所示

假设有水从各谷底空涌出并且水位逐渐增高,如果两个相邻的谷底(区域A和B)涌出的水位高过其间的峰间这些谁就会汇合。这个汇合的点就是分水岭。

图1

 

由此可见,如果能确定分水岭的位置,就能将图像用一组各自封闭的曲线分割成不同的区域。

分水岭图像分割算法就是通过确定分水岭的位置来进行图像分割的。一般考虑到各区域内部像素的灰度比较接近,而相邻区域像素间的灰度差距较大,可以先计算一幅图像的梯度图,再寻找梯度图的分水岭。

在梯度图中,小梯度值对应区域内部,大梯度值对应区域的边间,分水岭算法寻找大梯度值像素的位置,即边界位置。

 

2)借助数学形态学中的膨胀运算迭代计算分水岭的方法

2.1)设给定一幅待分割图像f(x,y),梯度图像g(x,y),分水岭的计算是在梯度图像上进行的。

2.2)用M1,M2,...,Mn表示各局部极小值的像素位置,C(Mi)为对应的Mi对应区域中像素坐标的集合用n代表当前的梯度阈值,

T[n]代表记为(u,v)的像素集合,g(u,v)<n,即

T[n]={(u,v) | g(u,v)<n}

梯度阈值从图像梯度范围的最低值整数增加。当梯度阈值为n时,g(x,y)<n平面的像素集合为T[n].

对Mi所在的区域满足条件的坐标集合C(Mi)可看做一幅二值图像:Cn(Mi)=C(Mi)∩T[n],即同时在C(Mi)区域和T[n]区域的地方Cn(Mi)=1,否则为0。

用C[M]代表所有梯度阈值为n时图像中所有满足梯度值小于n的像素集合:C[n]=∪Cn(Mi) i<n,C[max+1]为所有区域的并集,max为图像灰度范围的最大值。

2.3)初始化C[min+1]=t[min+1],然后逐渐迭代进行。设在步骤n时,以建立C[n-1-1],下面考虑从C[n-1]得到C[n].

令S代表T[n]中连通组元的集合,每个连通组元s∈S[n]时,有三种情况:

2.3.1)s∩C[n-1]是空集--C[n]=s+C[n-1]

2.3.2)s∩C[n-1]包含C[n-1]中的一个连通组元--C[n]=s+C[n-1]

2.3.3)s∩C[n-1]包含C[n-1]中一个以上的组元--需要在s中建立分水岭,对s∩C[n-1]进行膨胀

 

2. 实现

此实现用的是改进后的水平集方法,利用标号控制分割。

1)OpenCV源代码的解读

http://blog.csdn.net/byxdaz/article/details/4377753

2)具体应用过程

2.1)http://blog.csdn.net/dcrmg/article/details/52498440--如何具体实现

2.2)http://blog.csdn.net/skeeee/article/details/9013575--建立分水岭类进行应用

2.3)http://blog.csdn.net/fdl19881/article/details/6749976--交互

 

参考文献:

1)http://www.jdzj.com/plc/article/2010-6-24/17974-1.htm(图1来源)

2)章毓晋. 图像工程:图像分析[M]. 清华大学出版社, 2012.(文字部分来源)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值