文章目錄
- 膨脹運算(dilation)
- 定義
- 應用說明
- 腐蝕運算(erosion)
- 定義
- 應用說明
- 影像形態學二值化處理運算實作
- 二值影像的邏輯運算
- 形態學運算
- 膨脹與腐蝕運算的編程實作
- 腐蝕運算
- 膨脹運算
影像數學形態學處理,是以形態為基礎對影像進行分析的數學工具,它用具有一定形態的結構元素,度量和提取影像中的對應形狀,從而達到對影像分析和識別的目的,
其中腐蝕與膨脹是形態學處理的兩個基本運算,許多形態學演算法都是在這兩種運算的基礎上進行拓展的,
膨脹和腐蝕運算的效果實際上互為“相反”,如果說膨脹運算的效果是將目標物體變得更加飽滿,那么腐蝕運算就是將目標物體變得更加細小,
膨脹運算(dilation)
定義

集合A與B,若滿足上式,則稱A被B膨脹,
也就是對B的反射進行平移,使之與A的交集不為空的點集合,

如上圖所示,設A,B均為正方形,則其反射圖形不變,B的反射集合A集合在A集合的四個角處都有3/4的點與A的交集為空,若要保證所有交集都不為空,則A必膨脹至藍色陰影面積,稱A被B膨脹,
應用說明
膨脹運算就是將與物體接觸所有背景合并到該物體中,使邊界向外擴張的程序,因此,膨脹運算常用來填補物體中的空洞及消除目標物體中的小顆粒噪聲,如在處理一張字跡不清的圖片時,可以用膨脹運算填補字跡的空洞,從而使字跡更加清晰,
腐蝕運算(erosion)
定義

集合A與B,若滿足上式,則稱A被B腐蝕,
也就是將B平移z后,集合被包含在A的點的集合,

如上圖所示,設A,B均為正方形,B集合平移z單位后的集合在A集合的四角都有3/4的點不被A集合包含,則A必縮小至紫色陰影面積,稱A被B腐蝕,
應用說明
腐蝕運算是一種消除邊界點,使邊界點向內部收縮的程序,因此,腐蝕運算常用來消除影像中一些小且意義的物體;使用腐蝕運算消除影像的背景部分,也可以產生濾波器的效果,
影像形態學二值化處理運算實作
二值影像的邏輯運算
設集合A與B,其邏輯運算包括并集、交集、補集,
其中膨脹運算為二值影像的邏輯運算中的或運算,而腐蝕運算則為與運算,

形態學運算
結構元素是經過特殊定義的鄰域,而形態學運算實際也是鄰域運算,在每個像素位置上,結構元素與二值影像對應的區域進行特定的邏輯運算,邏輯運算的結果為輸出影像的相應像素取值,
膨脹與腐蝕運算的編程實作
腐蝕運算
for (rept = 0;rept < 3;rept++) //設定腐蝕次數
{
for (i = 1;i < h - 1;i++)
{
for (j = 1;j < w - 1;j++)
{
if (image[i * w + j] == 255) //找到一個圖形點
{
flag = 0;
for (m = -1;m < 2;m++)
{
for (n = -1;n < 2;n++)
{
if (image[(i + m) * w + j + n] == 0)
{
flag++;
break;
}
}
}
if (flag > 3) //該鄰域內包含有3個背景點
outImg[i * w + j] = 0;
}
}
}
}
編程具體思路為:圖形點在3×3鄰域有若干個背景點,則該點設為背景點,該點像素設為0,

膨脹運算
膨脹運算的編程思路與上述“相反”:當背景在3×3鄰域內有若干個圖形時,設該點為圖形點,該點像素設為255,
編程代碼與上述基本相同,改一些引數即可,

W.By Xyq
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265499.html
標籤:其他
下一篇:AutoSAR配置視頻講解:簡介
