canny算子邊緣檢測的優點 canny算子邊緣檢測

【canny算子邊緣檢測的優點 canny算子邊緣檢測】

canny算子邊緣檢測的優點 canny算子邊緣檢測



邊緣檢測是圖像處理的主要組成部分 。盡管基于卷積神經網絡等基于深度學習的技術可以執行非常復雜的邊緣檢測(即具有變化的曲率,噪聲,顏色等的邊緣),但在某些情況下,經典的邊緣檢測方法仍然具有很高的意義! 例如,如果已知數據是簡單且可預測的; 與CNN相比,Canny邊界檢測可以立即使用,而CNN的實現通常較為復雜 。
邊緣檢測的基本知識大多數經典的邊緣檢測算法都是基于一階導數的概念 。在下圖中,我們可以看到一個理論邊緣輪廓,y軸是像素強度,x軸是圖像中的物理位置 。在圖像的邊緣位置,有一個從低強度到高強度的快速過渡,反之亦然 。這個過渡的速度越快,邊緣將會出現 。為了檢測邊緣,我們只需取像素強度的一階導數,然后尋找如下圖所示的最大值!
Canny邊緣檢測通常將該導數與高斯濾波器相結合,一步完成圖像平滑和邊緣檢測 。由于導數和高斯濾波器的卷積都是線性運算,所以我們直接對圖像應用微分高斯濾波器即可!下面的示例5×5過濾器完成了這個操作,使用這個過濾器= 1 。
這樣會產生一個輸出,該輸出已經高亮顯示了邊緣的位置! 但是,Canny的優點是可以產生非常薄和干凈的邊緣 。下一步,非最大抑制(NMS)將實現這一目標 。通過跟蹤輸出圖像中的高值,然后檢查3×3鄰域中的最大梯度來完成NMS 。中心像素必須在垂直于邊緣的方向上最高,否則將被設置為0 。
在下面的示例中,我們看到一個7×7矩陣,其中的采樣輸出來自高斯濾波器 。較高的值將表明該位置的一階導數較高! 為了執行NMS,我們沿著邊緣方向進行跟蹤,然后將其設置為0(如果它們不是邊緣法線方向的最大值)(即紅色軸) 。因此,在NMS之后,藍色單元將保留,灰色單元將全部設置為0 。我們看到這提供了只有一個像素寬的精細邊緣輸出!
Canny邊緣檢測的另一個重要組成部分是滯后閾值 。這聽起來超級復雜,但是非常簡單! 此步驟與NMS一起執行,其主要思想是防止噪聲邊緣在最終邊緣檢測中引起碎片 。選擇2個閾值,其中T1> T2 。僅當梯度值大于T1時才開始NMS跟蹤,僅當梯度值小于T2時才停止NMS跟蹤 。這樣可以確保NMS跟蹤對邊緣的噪聲具有一定的魯棒性,該邊緣可以通過T1和T2值進行控制 。
總結Canny 邊緣檢測是很流行的邊緣檢測算法,是在1986年由John F.Canny提出的 。盡管Canny 邊緣檢測和各種經典的邊緣檢測方法似乎被流行的CNN和深度學習方法所掩蓋,但我們不應該忘記它們的簡單性和有效性 。有時,嘗試經典解決方案要容易得多,并且它可能比您預期的要好!

    推薦閱讀