把結構元素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++**
/*該程式在eclipse上除錯通過,結果正確。* 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;}
二值形態學 膨脹,腐蝕
最近在做乙個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包含於...