分水的演算法
㈠ 分水嶺演算法的應用
數學形態學一個應用是分水嶺演算法,為了便於理解,可以將圖像的灰度空間與地球表面的地形高度相類比,據此,發明了應用於圖像領域的分水嶺演算法。
假設,如下圖所示的一個島嶼,要從 點走到 點,虛線所表示的是最短的直線距離,也就是歐式距離,考慮到現實情況,不能穿過水面到達目標地點,所以,能夠從起點到終點的實際通行路線中最短的距離成為測地線距離。
通過以上分析,給出測地線距離的定義:
給定指定連通域 ,測地線距離就是 中兩個像素點 和 之間的最短(可執行)路徑的長度,用公式定義如下:
如下圖所示,假定一個連通域 包含了若干個子區域 ,用公式表示 所表示的測地線影響域為:
以上公式可以理解為,區域 中的像素點到 域的測地線距離比其他域更小的點的軌跡的集合,也就是以 域中的種子點出發,其測地線距離比其他域的種子點都要小的點集所構成的區域。如下圖所示:
SKIZ表示區域 中的點不屬於任何一個測地線影響域,也就是域 中的點到兩個測地線影響域的中測地線距離相等。區域 中構成 的SKIZ,記作 ,用公式的表述如下:
注意:, 表示區域 以外的 中的所有點的集合集合
如下圖所示的山脈地形圖,包含山谷和山峰,在水平面不斷上升的過程中,會逐漸淹沒掉一些較低的區域,而為了防止水溢出,需要不斷在山脊上修建大壩,這個過程不斷進行,最後會得到一個區域分割的效果。
在一副圖像上實現分水嶺演算法,與上述過程相似,只不過是通過灰度值充當水平面的角色,對圖像進行不斷的填埋,最後得到區域分割的效果圖。
如上圖所示的動畫中,不斷用灰度值代表的水平面淹沒圖像中的最小值,最後得到分割後的圖像。綜上,分水嶺演算法的步驟可以總結如下:
如下圖所示,另外一種分水嶺演算法的原理是,指定初始的種子點,只對種子點所在的鄰域像素進行分類,而不考慮其他區域。
如下圖所示的圖片,以最小點開始,進行分水嶺演算法,會將整幅圖分割成許多小區域,造成過分割的效果。為了解決這一問題,有以下三種解決方案:
最後,通過合並一些小區域再利用分水嶺演算法進行分割的效果如下圖所示:
如下圖所示,展示了通過分水嶺演算法分割血細胞的流程:
㈡ 分水嶺演算法的原理及相關思想的闡述是什麼
首先選擇最低的點,就是分水嶺中最底的山谷。
然後灌水:
1 . 極值點周圍的點也劃分到極值點,它們屬於一個區域。
2 . 在灌水的過程中根據你設定的閾值,還需要把有的區域合並。
3. 這個過程中有新的局部極值點產生,也是山谷,但不一定是最底的山谷。
最後灌滿了水之後,由起始的極值點形成了一個一個的區域。