基於matlab的數學形態學抗噪邊緣檢測

2021-10-02 20:08:42 字數 1471 閱讀 1944

數學形態學之前文章解釋過,不再做介紹。

影象邊緣包含物體的主要特徵,人眼識別物體,首先就是根據邊緣來識別。影象的邊緣提取也是現在數字影象處理中非常必要也是基礎的一部分,在工程應用中有著極其重要的地位,也是計算機視覺最活躍的領域。

影象的邊緣檢測有多到數不清的方法,這次使用最為簡單的方法——形態學中的膨脹腐蝕作為最基本的元素,進行有一定抗噪效能的邊緣檢測。

1.引入要處理的影象

這是乙個養不活的風信子,這張圖的邊緣細節部分主要集中在花瓶、根莖、後面牆紙的花紋

2.加入雜訊

這裡加入高斯雜訊,之後處理要轉換為灰度影象

3.獲取形態學運算元

這裡使用一組四方向運算元,分別是單位矩陣、除第二列為1其餘全為0的矩陣、除第二行為1其餘全為0的矩陣、除副對角為1其餘全為0的矩陣,來作為形態學運算元。因為對於膨脹腐蝕的方法提取邊緣來說,乙個運算元只會對垂直於它的邊緣作用效果明顯(為什麼作用明顯,見前文與膨脹腐蝕的原理),所以方向數要備足,這樣才能對所有方向的邊緣產生作用,這裡選取了4方向,改進的話可以選擇8方向甚至更多,也可以選取別的形狀運算元。

4.邊緣檢測方法選擇

為了做對比,這裡使用了兩種形態學方法。

一,使用4個運算元中的乙個,將影象分別進行膨脹和腐蝕運算,再將結果做差,得到乙個方向的邊緣資訊。4個運算元都計算完成後,將4個結果以平均權重相加,得到最終影象。這種方法很明顯是不抗噪的。

二,使用4個運算元中的乙個,將影象分別進行先開後膨脹和先閉再腐蝕運算,再將結果做差,得到乙個方向的邊緣資訊。4個運算元都計算完成後,將4個結果以平均權重相加,得到最終影象。這種方法使用開運算去除孤立的毛刺和小橋,閉運算去除物體內部的小孔和裂縫,很明顯是先一定程度上去除了雜訊,再進行邊緣檢測的。

5.實驗結果

第一種方法在不含噪和含噪情況下的結果:

第二種方法在不含噪和含噪情況下的結果:

通過直接觀測的結果對比,顯然在有雜訊的情況下,抗噪型邊緣檢測的效果大大優於不抗噪邊緣檢測。但不抗噪邊緣檢測,在不含雜訊的情況下,結果似乎優於抗噪型。也區域性說明了,沒有一種演算法能佔據所有優勢。後續進行改進,可以對各個結構運算元加入多尺度運算,使用融合權值和資訊熵進行加權處理。

Matlab 形態學常用演算法

膨脹 是將a與核b卷積,求區域性最大值,可以使得影象中的亮區域逐漸增長 腐蝕 是膨脹的反操作,一般來說膨脹會擴張區域和腐蝕縮小區域 膨脹可以填補細小的坑洞而腐蝕可以消除細的突起,maltab中使用imdalite a,b 表示使用核b膨脹a區域,核b可以通過strel函式獲得,如strel disk...

MATLAB 常用形態學操作函式

常用形態學操作函式 自 1 dilate函式 該函式能夠實現二值影象的膨脹操作,有以下形式 bw2 dilate bw1,se bw2 dilate bw1,se,n 其中 bw2 dilate bw1,se 表示使用二值結構要素矩陣se隊影象資料矩陣bw1執行膨脹操作。輸入影象bw1的型別為dou...

Python數學形態學例項分析

一 原始隨機影象 1 import numpy as np import matplotlib.pyplot as plt square np.zeros 32,32 全0陣列 square 10 20程式設計客棧,10 20 1 把其中一部分設定為1 x,y 32 np.random.random...