二值形態學 膨脹,腐蝕

2021-04-02 14:42:14 字數 1154 閱讀 5306

最近在做乙個motion detection的課題,在課題中提取的運動物體往往由離散的點組成,如果要用連通分量的計算方法提取每個運動物體的輪廓不太容易,為此要將由離散點組成的影象進行膨脹,腐蝕運算。

膨脹 dilation

考慮兩幅二值影象a,b。它們的前景用黑色,背景用白色。另fa和fb表示各自前景點的集合。定義膨脹運算為:dilation(a,b) = 。比如:

a =

b =

dilation(a,b) =

腐蝕 erosion

同樣考慮兩幅影象a,b。定義腐蝕運算為: erosion(a,b) =

膨脹腐蝕運算的性質

c++ 實現

這裡 buf 相當於 a,model相當於b 計算dilation(buf,model)

void shapeoper::dilation(unsigned char* buf, int width, int height, vectormodel)

{int i,j,k;

point p;

unsigned char* temp = new unsigned char[width*height];

memcpy(temp,buf,width*height);

for(i=0;i=0 && p.x=0 && p.y

計算erosion(buf,model)

void shapeoper::erosion(unsigned char* buf, int width, int height, vectormodel)

{int i,j,k;

point p;

unsigned char* temp = new unsigned char[width*height];

memcpy(temp,buf,width*height);

bool is_point = true;

for(i=0;i=0 && p.x=0 && p.y 10){

is_point = false;

//cout<<"other"<

二值形態學 膨脹,腐蝕

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

二值形態學 腐蝕

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

形態學運算元 腐蝕,膨脹,開閉

本文總結了腐蝕,膨脹和開閉操作在二值影象上的應用,基於opencv給出了例項。參考 數字影象處理 第三版 岡薩雷斯 腐蝕的定義為 在二維整數空間 其中上面的定義含義是,b對a的腐蝕是乙個用z平移的b包含在a中的所有的點z的集合。腐蝕縮小或細化了二值影象中的物體。可以將腐蝕視為形態學濾波,這種操作將小...