文章目錄
- 什么是形態學操作?
- 為什么要形態學操作?
- 怎么形態學操作?
- 腐蝕 —— Erosion
- erosion1
- erosion_circle:
- erosion_rectangle1:
- 膨脹 —— Dilation
- dilation1
- dilation_circle
- dilation_rectangle1
- 打開 —— Opening
- opening
- opening_circle
- opening_rectangle1
- 關閉 —— Closing
- closing
- closing_circle
- closing_rectangle1
什么是形態學操作?
- 形態學操作,也被稱為形態學圖像處理或形態學變換,是圖像處理領域中的一組非線性操作。這些操作基于圖像的幾何形狀,利用預定義的結構元素(也稱為核或探針)對圖像進行探測和變換。
- 形態學操作主要處理二值圖像或灰度圖像,用于提取圖像中的形狀特征、去除噪聲、分離物體、填充孔洞等。
為什么要形態學操作?
- 圖像預處理
- 噪聲去除:形態學操作,特別是腐蝕和開運算,可以有效地去除圖像中的細小噪聲點。
- 背景分割:通過膨脹和閉運算,可以將前景物體與背景更清晰地分離開來。
- 圖像分割
- 區域分離:利用形態學操作,如腐蝕和膨脹,可以分離出圖像中相互接觸或重疊的物體。
- 邊緣檢測:形態學梯度操作能夠突出圖像中的邊緣特征,從而有助于更精確地分割圖像。
- 特征提取
- 形狀分析:形態學操作可以提取出圖像中的形狀特征,如物體的尺寸、形狀和方向等。
- 圖像增強
- 對比度增強:通過形態學操作,如頂帽變換和黑帽變換,可以增強圖像的對比度,使圖像中的細節更加清晰。
- 填充孔洞:閉運算可以填充圖像中的細小孔洞,從而改善圖像的完整性。
怎么形態學操作?
腐蝕 —— Erosion
- 腐蝕操作的主要用途包括消除細小的噪聲區域、將連通的區域斷開等
函數名 | 說明 |
---|---|
erosion1 | 腐蝕一個區域 |
erosion _ circle | 腐蝕一個圓形結構基礎的一個區域 |
erosion _ rectangle1 | 腐蝕一個矩形結構基礎的一個區域 |
erosion1
- 按樣品腐蝕一個區域。
- 函數:
erosion1(Region,StructElement:RegionErosion: Iterations:)
- 參數:
- Region :輸入需要腐蝕的區域;
- StructElement :輸入腐蝕區域樣品(大小) ;
- RegionErosion:輸出腐蝕后的區域;
- Iterations:輸入往外腐蝕的次數, 1≤ Iterations(lin);
- 效果:
-
erosion1 (ConnectedRegions, ConnectedRegions, RegionErosion, 1)
-
腐蝕前:
-
腐蝕后:
-
erosion_circle:
- 使用圓形結構元素對區域進行腐蝕。
- 函數:
erosion_circle(Region:RegionErosion: Radius:)
- 參數:
- Region :輸入需要腐蝕的區域;
- RegionErosion :輸出腐蝕后的區域;
- Radius :輸入圓形結構基礎的半徑;
- 效果:
-
erosion_circle (ConnectedRegions, RegionErosion, 3.5)
-
腐蝕前:
-
腐蝕后
-
erosion_rectangle1:
- 使用矩形結構元素對區域進行腐蝕。
- 函數:
erosion_rectangle1(Region:RegionErosion: Width, Height:)
- 參數:
- Region :輸入需要腐蝕的區域;
- RegionErosion :輸出腐蝕后的區域;
- Width:輸入腐蝕矩形寬度;
- Height :輸入腐蝕矩形高度;
膨脹 —— Dilation
- 膨脹操作會增加圖像中前景物體的邊界,通常用于擴大物體、連接相鄰的物體或填補物體內部的細小孔洞
函數名 | 說明 |
---|---|
dilation1 | 擴大一個區域 |
dilation _ circle | 擴大一個圓形結構基礎的一個區域 |
dilation _rectangle1 | 擴大一個矩形結構基礎的一個區域 |
dilation1
- 擴大一個區域
- 函數:
dilation_circle(Region:RegionDilation: Radius:)
- 參數:
- Region:輸入需要擴大的區域;
- StructElement:輸入擴充區域樣品(大小) ;
- RegionDilation :輸出擴充后的區域;
- Iterations: 輸入往外擴充的次數, 1 ≤ Iterations(lin);
- 效果:
dilation1 (SelectedRegions, ConnectedRegions, RegionDilation, 1)
- 膨脹前:
- 膨脹后:
dilation_circle
- 擴大一個圓形結構基礎的一個區域
- 函數:
dilation_circle(Region:RegionDilation: Radius:)
- 參數:
- Region:輸入需要擴充的區域;
- RegionDjlation :輸出擴充后的區域;
- Radius:輸入圓形結構基礎的半徑;
dilation_rectangle1
- 擴大一個矩形結構基礎的一個區域
- 函數:
dilation_rectangle1(Region:RegionDilation: Width, Height:)
- 參數:
- Region:輸入需要擴充的區域;
- RegionDilation :輸出擴充后的區域;
- Width:輸入擴充矩形寬度;
- Height:輸入擴充矩形高度;
打開 —— Opening
- 開運算是先腐蝕后膨脹的操作,它有助于去除小的物體、在物體間分離細小的連接以及在保持物體大小不變的情況下平滑物體的邊界。
函數名 | 說明 |
---|---|
opening | 打開一個被提取了成分的區域 |
opening _ circle | 打開一個圓形結構基礎的一個區域 |
opening _ rectangle1 | 打開一個矩形結構基礎的一個區域 |
opening
- 打開一個被提取了成分的區域
- 函數:
opening(Region, StructElement:RegionOpening::)
- 參數:
- Region:輸入一個需要被提取圓形成分的區域;
- StructElement :輸入成分區域;
- RegionOpening : 輸出被提取了成分該區域;
opening_circle
- 打開一個圓形結構基礎的一個區域;
- 函數:
opening_circle(Region:RegionOpening: Radius:)
- 參數:
- Region:輸入一個需要被提取圓形成分的區域;
- RegionOpening:輸出被提取圓形成分的區域;
- Radius:輸入圓形成分的半徑;
opening_rectangle1
-
打開一個矩形結構基礎的一個區域;
-
函數:
opening_rectangle1(Region:RegionOpening: Width, Height:)
-
參數:
- Region:輸入一個需要被提取矩形成分的區域;
- RegionOpening :輸出一個提取了矩形成分的區域;
- Width: 輸入矩形成分的寬度;
- Height:輸入矩形成分的高度;
-
效果:
opening_rectangle1 (SelectedRegions, RegionOpening, 1, 10)
- 開運算前圖像:
- 開運算后圖像:
關閉 —— Closing
- 閉運算是先膨脹后腐蝕的操作。它使用指定的結構元素對圖像進行膨脹處理,以填補物體內部的細小空洞或連接鄰近的物體,然后再進行腐蝕處理,以恢復目標區域的邊界形態。
函數名 | 說明 |
---|---|
closing | 關閉一個成分區域結構的修正區域 |
closing_circle | 關閉一個圓形結構基礎的修正區域 |
closing_rectangle1 | 關閉一個矩形結構基礎的修正區域 |
closing
- 關閉一個成分區域結構的修正區域;
- 函數:
closing(Region, StructElement:RegionClosing::)
- 參數:
- Region:輸入需要關閉其中部分(區域)的區域
- StructElement:輸入需要關閉的成分區域;
- Structuring element:輸出修正后的區域;
closing_circle
- 關閉一個圓形結構基礎的修正區域;
- 函數:
closing_circle(Region:RegionClosing: Radius:)
- 參數:
- Region:輸入要被關閉的區域;
- RegionClosing :輸出關閉后的區域;
- Radius:輸入(需要關閉小于該)圓形基礎的半徑;
closing_rectangle1
- 關閉一個矩形結構基礎的修正區域;
- 函數:
closing_rectangle1(Region:RegionClosing: Width, Height:)
- 參數:
- Region:輸入需要關閉的區域;
- RegionClosing :輸出關閉后的區域;
- Width:輸入(需要關閉小于該)矩形的寬度;
- Height:輸入(需要關閉小于該)矩形的高度;