分水岭分割算法

介绍

分水岭(watershed,也称分水线/水线),建立不同目标间的分水岭(涨水法)
在这里插入图片描述

把图像看成3-D地形的表示,即2-D的地基(对应图像空间)加上第3维的高度(对应图像灰度),计算过程是串行的,得到的是目标的边界。

步骤

1.待分割图像与梯度图像

待分割图像 f ( x , y ) f (x, y) f(x,y),其梯度图像为 g ( x , y ) g(x, y) g(x,y)

2.局部极小值集合

M 1 , M 2 , … , M R M_1, M_2, …, M_R M1,M2,,MR表示 g ( x , y ) g(x, y) g(x,y)中各局部极小值的像素位置, C ( M i ) C(M_i) C(Mi)为与Mi对应的区域中的像素坐标集合。

3.求 T [ n ] T[n] T[n]

n n n表示当前梯度阈值, T [ n ] T[n] T[n]代表记为 ( u , v ) (u, v) (u,v)的像素集合, g ( u , v ) < n g(u, v) < n g(u,v)<n
在这里插入图片描述

4.求 C n ( M i ) C_n(M_i) Cn(Mi)

M i M_i Mi所在的区域,其中满足条件的坐标集合 C n ( M i ) C_n(M_i) Cn(Mi)可看作一幅二值图像
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.求 C [ n ] C[n] C[n]

C [ n ] C[n] C[n]代表在梯度阈值为 n n n时图像中所有满足梯度值小于 n n n的像素
在这里插入图片描述
C [ m a x + 1 ] C[max+1] C[max+1]将是所有区域的并集( m a x max max是图像灰度范围的最大值)
在这里插入图片描述
C [ n – 1 ] C[n–1] C[n–1] C [ n ] C[n] C[n]的子集, C [ n ] C[n] C[n] T [ n ] T[n] T[n]的子集,所以 C [ n – 1 ] C[n – 1] C[n–1]又是 T [ n ] T[n] T[n]的子集,因此每个 C [ n – 1 ] C[n–1] C[n–1]中的连通组元都包含在一个 T [ n ] T[n] T[n]的连通组元中。

6.分水岭判定

算法初始化 C [ m i n + 1 ] = T [ m i n + 1 ] C[min+1]=T[min+1] C[min+1]=T[min+1],然后算法逐步迭代。设步骤 n n n时已经建立了 C [ n − 1 ] C[n-1] C[n1],由 C [ n − 1 ] C[n-1] C[n1]得到 C [ n ] C[n] C[n]的过程如下:
s s s 代表 T [ n ] T[n] T[n]中的连通组元集合,对每个连通组元s ,有3种可能性:
(1) s ∩ C [ n – 1 ] s ∩ C[n – 1] sC[n–1]是1个空集
(2) s ∩ C [ n – 1 ] s ∩ C[n – 1] sC[n–1]里包含 C [ n – 1 ] C[n – 1] C[n–1]中的一个连通组元
(3) s ∩ C [ n – 1 ] s ∩ C[n – 1] sC[n–1]里包含 C [ n – 1 ] C[n – 1] C[n–1]中一个以上的连通组元
分别处理如下:

在这里插入图片描述(1) C [ n ] C[n] C[n]可由把连通组元 s s s 加到 C [ n – 1 ] C[n – 1] C[n–1]中得到
(2) C [ n ] C[n] C[n]可由把连通组元 s s s 加到 C [ n – 1 ] C[n – 1] C[n–1]中得到
(3) 需要在 s s s 中建分水岭

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值