分水嶺算法(watershed)

分水嶺算法就是根據分水嶺的構成來考慮圖像的分割,我們可以想像一個有山有湖的景象,山水環繞,而區分高山與水的界線,以及不同湖之間的間隔,就是我們的分水嶺。

分水嶺算法基本上是把影像看作是地貌,每一點像素的灰階值表示該點的海拔高度,每一個局部極小值及其影響區域稱為集水盆,我們從第0層填充影像,隨著水逐漸漲高,集水盆形成,這些盆地的尺寸緩緩增加,最終兩個不同的盆地水匯聚,這時創建一個分水嶺以保持兩個盆地分離,一旦水的層數到達最大值,這些創建的盆地和分水嶺的集合形成了分水嶺分割算法的結果。


OpenCV分水嶺:void watershed(InputArray image, InputOutputArray markers)

  • image:輸入圖,8位元3通道圖。
  • markers:輸入輸出標記圖,32位元單通道圖,尺寸必須和image相同。

實際使用時,image是我們要做分水嶺演算法的原始圖,使用markers前要先在上面標記,分別標記image的前景、後景,以及不確定前後景的像素位置,前景、後景位置的標籤值可以自己定義,不確定的位置設為0,函式呼叫後markers會更新,生成最終的分水嶺分割圖,分水嶺的位置為0。


转自:http://monkeycoding.com/?p=647



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值