分水嶺算法可以將圖像中的邊緣轉化成“山脈”,將均勻區域轉化為“山谷”,這樣有助于分割目標。
分水嶺算法是一種基于拓撲理論的數學形態學的分割方法,其基本思想是把圖像看作是測地學上的拓撲地貌,圖像中的每一點像素的灰度值表示該點的海拔高度,每一個局部極小值及其影響區域稱為集水盆,而集水盆的邊界則形成分水嶺。分水嶺的概念和形成可以通過模擬浸入過程來說明:在每一個局部極小值表面,刺穿一個小孔,然后把整個模型慢慢浸入水中,隨著浸入的加深,每一個局部極小值的影響區域慢慢向外擴展,在兩個集水盆匯合處構筑大壩,即形成分水嶺。
分水嶺的計算過程是一個迭代標注過程。分水嶺計算分成兩個步驟:一個是排序過程,一個是淹沒過程。首先對每個像素的灰度級進行從低到高的排序,然后在從低到高實現淹沒的過程中,對每一個局部極小值在h階高度的影響域采用先進先出(FIFO)結構進行判斷及標注。分水嶺變換得到的是輸入圖像的集水盆圖像,集水盆之間的邊界點即為分水嶺。顯然,分水嶺表示的是輸入圖像的極大值點。
簡而言之,分水嶺算法首先計算灰度圖的梯度,這對圖像中的“山谷”或沒有紋理的“盆地”(亮度值低的點)的形成是很有效的,也對“山頭”或圖像中有主導線段的“山脈”(山脊對應的邊緣)的形成有效。然后開始從用戶指定點(或者算法得到點)開始持續“灌注”盆地直到這些區域連成一片。基于這樣產生的標記就可以把區域合并到0一起,合并后的區域又通過聚集的方式進行分割,好像圖像被“填充”起來一樣。
實現分水嶺算法 主站蜘蛛池模板: 青河县| 黑龙江省| 任丘市| 溧水县| 温宿县| 龙川县| 通河县| 武冈市| 广宁县| 鲁甸县| 汾阳市| 留坝县| 磐安县| 婺源县| 徐水县| 汶上县| 塘沽区| 雷山县| 磐石市| 乌鲁木齐市| 信阳市| 大同市| 马尔康县| 香港| 石棉县| 汉沽区| 贡山| 临夏县| 八宿县| 九寨沟县| 大邑县| 平邑县| 新营市| 渝北区| 额尔古纳市| 民乐县| 屯门区| 达州市| 阿合奇县| 长宁县| 余干县|