二值形態學 腐蝕

2022-08-01 13:54:18 字數 1510 閱讀 4528

把結構元素b平移

a後得到

ba,若

ba包含於

x,我們記下這個

a點,所有滿足上述條件的

a點組成的集合稱做x被

b腐蝕(erosion)

的結果。

用公式表示為:

e(x)==x

b,如圖

1所示。 

圖1腐蝕的示意圖

圖1中x

是被處理的物件,

b是結構元素。不難知道,對於任意乙個在陰影部分的點a,

ba包含於

x,所以x被

b腐蝕的結果就是那個陰影部分。陰影部分在

x的範圍之內,且比

x小,就象

x被剝掉了一層似的,這就是為什麼叫腐蝕的原因。

值得注意的是,上面的

b是對稱的,即

b的對稱集

bv=b

,所以x被b

腐蝕的結果和x被

bv腐蝕的結果是一樣的。如果

b不是對稱的,讓我們看看圖

2,就會發現x被

b腐蝕的結果和x被

bv腐蝕的結果不同。

圖2結構元素非對稱時,腐蝕的結果不同

圖1和圖2都是示意圖,讓我們來看看實際上是怎樣進行腐蝕運算的。在圖3

中,左邊是被處理的圖象

x(二值圖象,我們針對的是黑點

),中間是結構元素

b,那個標有

origin

的點是中心點,即當前處理元素的位置,我們在介紹模板操作時也有過類似的概念。腐蝕的方法是,拿

b的中心點和

x上的點乙個乙個地對比,如果

b上的所有點都在

x的範圍內,則該點保留,否則將該點去掉;右邊是腐蝕後的結果。可以看出,它仍在原來

x的範圍內,且比

x包含的點要少,就象

x被腐蝕掉了一層。

圖3腐蝕運算

下面是腐蝕運算的c++**

/*

* my_erode.cpp

* 對二值影象進行腐蝕

* created on: 2011-10-8

* author: lichanghai

*///

假定背景為黑色---0,目標為白色---255

//結構元素---m×n的矩形,m,n為奇數

//結構元素的中心作為原點

#include

#define m 3

#define n 3

#define m1 (m-1)/2

#define n1 (n-1)/2

bool my_erode(unsigned char *pimage, int width, int height, int bibitcount)

}return

1;}

該程式在eclipse上除錯通過,結果正確。

二值形態學 膨脹,腐蝕

最近在做乙個motion detection的課題,在課題中提取的運動物體往往由離散的點組成,如果要用連通分量的計算方法提取每個運動物體的輪廓不太容易,為此要將由離散點組成的影象進行膨脹,腐蝕運算。膨脹 dilation 考慮兩幅二值影象a,b。它們的前景用黑色,背景用白色。另fa和fb表示各自前景...

二值形態學 膨脹,腐蝕

最近在做乙個motion detection的課題,在課題中提取的運動物體往往由離散的點組成,如果要用連通分量的計算方法提取每個運動物體的輪廓不太容易,為此要將由離散點組成的影象進行膨脹,腐蝕運算。膨脹 dilation 考慮兩幅二值影象a,b。它們的前景用黑色,背景用白色。另fa和fb表示各自前景...

二值形態學 腐蝕的原理

把結構元素b平移 a後得到 ba,若 ba包含於 x,我們記下這個 a點,所有滿足上述條件的 a點組成的集合稱做x被 b腐蝕 erosion 的結果。用公式表示為 e x x 如圖1 所示。圖1 腐蝕的示意圖 圖1中x 是被處理的物件,b是結構元素。不難知道,對於任意乙個在陰影部分的點a,ba包含於...