Re: [問題] 想請問一下關於分水嶺法

看板MATLAB作者 (~口卡口卡 修~)時間14年前 (2010/08/22 21:44), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
※ 引述《csps60408 (煒煒)》之銘言: : 想把重疊的相同物體做切割分離 : 聽說有種方法叫分水嶺法,不知道有人有否可以跟我說明一下此種方法呢? --- 請問你是在說 Morphological Watershed 這個方法嘛? 是的話我可以大概說一下它的原理:    假設給定一張灰階圖      圖上有兩個物體 (或是兩塊不同的區域) 想辨識這兩個物體    根據 pixel 的顏色深淺    可以畫出以下的圖 (以一條 scanline為例 ) :    object 1 object 2    ├───────┼──────────┤    \ /    \ ∕    ﹨ ▼ /    ﹨ ∕\ /    \ ∕ \ ∕    \ˍ/ ﹨ ∕ ↑   *1 ﹨ ∕        │    \ˍ∕ │ 水位慢慢提升 *2 由圖上可發現   兩個物體很像是兩個 "波谷" 若想把相同的區域 label 成同一塊 一個簡單的想法是 "灌水" 也就是由底部(*1 和 *2) 慢慢將水位提高 (watershed line)   若是一個波谷內的水位沒有 "溢出" 那很有可能這些水都是屬於這個波谷內的水 (也就是同一個物體) 若 object 1 的水位一旦溢出 那很有可能這些水會流到 object 2 這個波谷   那就必須要建個 "防水壩" (dam, ▼) 防止 object 1 的水流進 object 2 這個波谷裡 ( dam construction ) 故該演算法有 watershed 之稱 ---- 根據這個簡單的想法   一開始的演算法會先把圖片取 gradient 隨意找出 seed ( 也就是圖中的 *1 和 *2 ) 然後利用 morphology 的方法 ( 如 Dilation 、 Erosion 、...) 以 seed 為中心往外逐漸長大   並且對被擴增的區域標示相對應的 label 值   若有兩塊不同的區域逐漸擴張時 相互觸碰 那就把觸碰的邊界 mark 起來不去動它 (稱做 dam points) --- 演算法細節可能要去找影像處理方面的書籍來看 @@a -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.47.130

08/22 22:57, , 1F
感謝您阿~我也是希望能繼續知道細節或是使用方法@@
08/22 22:57, 1F

08/23 21:17, , 2F
分水嶺要講的很難可以很難@@ 因為有過度分割的情形
08/23 21:17, 2F

08/23 21:17, , 3F
但是大大有把精隨講出來了XD
08/23 21:17, 3F
文章代碼(AID): #1CSIdNbd (MATLAB)