形態學運算中腐蝕,膨脹,開運算和閉運算。
1. 腐蝕是一種消除邊界點,使邊界向內部收縮的過程。可以用來消除小且無意義的物體。
腐蝕的算法:
用3x3的結構元素,掃描圖像的每一個像素
用結構元素與其覆蓋的二值圖像做「與」操作
如果都為1,結果圖像的該像素為1。否則為0。
結果:使二值圖像減小一圈
腐蝕的算法:
用3x3的結構元素,掃描圖像的每一個像素
用結構元素與其覆蓋的二值圖像做「與」操作
如果都為1,結果圖像的該像素為1。否則為0。
結果:使二值圖像減小一圈
2. 膨脹是將與物體接觸的所有背景點合並到該物體中,使邊界向外部擴張的過程。可以用來填補物體中的空洞。
膨脹的算法:
用3x3的結構元素,掃描圖像的每一個像素
用結構元素與其覆蓋的二值圖像做「與」操作
如果都為0,結果圖像的該像素為0。否則為1
結果:使二值圖像擴大一圈
膨脹的算法:
用3x3的結構元素,掃描圖像的每一個像素
用結構元素與其覆蓋的二值圖像做「與」操作
如果都為0,結果圖像的該像素為0。否則為1
結果:使二值圖像擴大一圈
3. 先腐蝕後膨脹的過程稱為開運算。用來消除小物體、在纖細點處分離物體、平滑較大物體的邊界的同時並不明顯改變其面積。
4. 先膨脹後腐蝕的過程稱為閉運算。用來填充物體內細小空洞、連接鄰近物體、平滑其邊界的同時並不明顯改變其面積。
// 腐蝕 的例子代碼
//使用水平方向的結構元素進行腐蝕
for(j = 0; j
for(i = 1;i
...
//目標圖像中的當前點先賦成黑色
*lpDst = (unsigned char)0;
//如果源圖像中當前點自身或者左右有一個點不是黑色,
//則將目標圖像中的當前點賦成白色
for (n = 0;n < 3;n++ )
{
pixel = *(lpSrc+n-1);
if (pixel == 255 )
{
*lpDst = (unsigned char)255;
break;
}
}
}
}
//則將目標圖像中的當前點賦成白色
for (n = 0;n < 3;n++ )
{
pixel = *(lpSrc+n-1);
if (pixel == 255 )
{
*lpDst = (unsigned char)255;
break;
}
}
}
}
沒有留言:
張貼留言