分水嶺的迭代計算具體過程解釋

2021-08-10 16:05:27 字數 978 閱讀 6424

分水嶺的計算過程是乙個迭代標註過程。分水嶺比較經典的計算方法是l. vincent提出的。在該演算法中,分水嶺計算分兩個步驟,乙個是排序過程,乙個是淹沒過程。首先對每個畫素的灰度級進行從低到高排序,然後在從低到高實現淹沒過程中,對每乙個區域性極小值在h階高度的影響域採用

先進先出

(fifo)結構進行判斷及標註。

分水嶺變換得到的是輸入影象的集水盆影象,集水盆之間的邊界點,即為分水嶺。顯然,分水嶺表示的是輸入影象極大值點。因此,為得到影象的邊緣資訊,通常把梯度影象作為輸入影象,即

g(x,y)=grad(f(x,y))=0.5

式中,f(x,y)表示原始影象,grad表示梯度運算。

分水嶺演算法

對微弱邊緣具有良好的響應,影象中的雜訊、物體表面細微的灰度變化,都會產生過度分割的現象。但同時應當看出,

分水嶺演算法

對微弱邊緣具有良好的響應,是得到封閉連續邊緣的保證的。另外,

分水嶺演算法

所得到的封閉的集水盆,為分析影象的區域特徵提供了可能。

為消除分水嶺演算法產生的過度分割,通常可以採用兩種處理方法,一是利用

先驗知識

去除無關邊緣資訊。二是修改梯度函式使得集水盆只響應想要探測的目標。

為降低分水嶺演算法產生的過度分割,通常要對梯度函式進行修改,乙個簡單的方法是對梯度影象進行閾值處理,以消除灰度的微小變化產生的過度分割。即

g(x,y)=max(grad(f(x,y)),gθ)

式中,gθ表示閾值。

程式可採用方法:用閾值限制梯度影象以達到消除灰度值的微小變化產生的過度分割,獲得適量的區域,再對這些區域的邊緣點的灰度級進行從低到高排序,然後在從低到高實現淹沒的過程,梯度影象用

sobel運算元

計算獲得。對梯度影象進行閾值處理時,選取合適的閾值對最終分割的影象有很大影響,因此閾值的選取是

影象分割

效果好壞的乙個關鍵。缺點:實際影象中可能含有微弱的邊緣,灰度變化的數值差別不是特別明顯,選取閾值過大可能會消去這些微弱邊緣。

OpenCV的分水嶺演算法

本文使用python實現 import cv2 as cv import numpy as np def watershed demo src print src.shape blurred cv.pyrmeanshiftfiltering src,10,100 去雜訊 gray cv.cvtcol...

專案經理的分水嶺

一流的專案經理掌控客戶,二流的專案經理掌控專案團隊,三流的專案經理掌控分包商,不入流的專案經理被分包商掌控。在專案施工體系中,處於下游是不利的,能否反其道進攻 化劣勢為優勢甚至掌控局面,是專案經理能力的分水嶺。不入流的專案經理常常把甲方做成乙方,把專案施工體系中佔據的優勢喪失殆盡,甚至處於劣勢地位。...

分水嶺演算法的概念及原理

分水嶺分割方法,是一種基於拓撲理論的數學形態學的分割方法,其基本思想是把影象看作是測地學上的拓撲地貌,影象中每一點畫素的灰度值表示該點的海拔高度,每乙個區域性極小值及其影響區域稱為集水盆,而集水盆的邊界則形成分水嶺。分水嶺的概念和形成可以通過模擬浸入過程來說明。在每乙個區域性極小值表面,刺穿乙個小孔...