如果我有一個結構元素看起來像這樣一個(原點在SE的中心):用零結構元素齧蝕狀/擴張圖像
0 0 0
0 0 0
0 0 0
如果我的二值圖像上執行侵蝕/擴張,結果全部爲0或1. 有人可以向我解釋這一個嗎? (通過matlab檢查)
非常感謝。
如果我有一個結構元素看起來像這樣一個(原點在SE的中心):用零結構元素齧蝕狀/擴張圖像
0 0 0
0 0 0
0 0 0
如果我的二值圖像上執行侵蝕/擴張,結果全部爲0或1. 有人可以向我解釋這一個嗎? (通過matlab檢查)
非常感謝。
你有一個完美有效的SE。這是一個平面廣場,通常在每個圖像處理庫中都可以使用。
現在,瞭解平面和非平面結構元素(或結構函數)之間的差異和相似性非常重要。相似之處在於它們在某個鄰域上運行。對於一個元素方形元素,鄰域可以用一個3x3矩陣表示,其中每個元素都在元素的鄰域內(對於菱形SE,例如,它也是一個3x3矩陣,但角落不屬於鄰里)。在Matlab中,這個特定的鄰域關係表示爲ones(3, 3)
或者簡單地[1 1 1; 1 1 1; 1 1 1]
。平坦和非平坦SE之間的區別是什麼使Matlab中的strel
函數成爲現實。一個非平坦的SE意味着它可以以不同的方式對待鄰居,所以它不完全依賴於0值(對侵蝕和膨脹的定義稍作修改以處理這種情況)。作爲一個例子,正方形SE在Matlab中被正確定義爲strel('arbitrary', ones(3, 3), zeros(3, 3))
(指定zeros(3, 3)
作爲第二個參數基本上是一個錯誤,因爲你說你沒有鄰居那麼)。另一方面,可以用無限的方式定義一個非平坦的正方形,其中一個可以是strel('arbitrary', ones(3, 3), [-1 -1 -1; -1 0 -1; -1 -1 -1])
。總結一下,你很可能錯誤地使用了strel
。