發布日期:2022-04-20 點擊率:62
邊緣檢測是圖像處理領域的重要話題,對于邊緣檢測問題,很多朋友都不是很了解。為增進大家對邊緣檢測的認識,本文將對邊緣檢測、Canny邊緣檢測算法予以介紹。如果你對邊緣檢測具有興趣,不妨一起和小編繼續往下閱讀哦。
一、邊緣檢測
邊緣檢測是圖像處理和計算機視覺中的基本問題,邊緣檢測的目的是標識數字圖像中亮度變化明顯的點。圖像屬性中的顯著變化通常反映了屬性的重要事件和變化。 這些包括(i)深度上的不連續、(ii)表面方向不連續、(iii)物質屬性變化和(iv)場景照明變化。 邊緣檢測是圖像處理和計算機視覺中,尤其是特征提取中的一個研究領域。
圖像邊緣檢測大幅度地減少了數據量,并且剔除了可以認為不相關的信息,保留了圖像重要的結構屬性。有許多方法用于邊緣檢測,它們的絕大部分可以劃分為兩類:基于查找一類和基于零穿越的一類。基于查找的方法通過尋找圖像一階導數中的最大和最小值來檢測邊界,通常是將邊界定位在梯度最大的方向。基于零穿越的方法通過尋找圖像二階導數零穿越來尋找邊界,通常是Laplacian過零點或者非線性差分表示的過零點。
邊緣可能與視角有關—— 也就是說邊緣可能隨著視角不同而變化,典型地反映在場景、物體的幾何形狀一個將另一個遮擋起來,也可能與視角無關——這通常反映被觀察物體的屬性如表面紋理和表面形狀。在二維乃至更高維空間中,需要考慮透視投影的影響。
一個典型的邊界可能是,例如一塊紅色和一塊黃色之間的邊界,與此相反的是邊線可能是在另外一種不變的背景上的少數不同顏色的點。在邊線的每一邊都有一個邊緣。在許多圖像處理的應用中邊緣都起著非常重要的作用。然而,在最近幾年,不明顯依賴于邊緣檢測作為預處理的計算機視覺處理方法研究取得了一些實質性的研究成果。
二、Canny邊緣檢測算法
1983年,John Canny在麻省理工學院發明了Canny邊緣檢測。它將邊緣檢測視為一個信號處理問題。其核心思想是,如果你觀察圖像中每個像素的強度變化,它在邊緣的時候非常高。
在下面這張簡單的圖片中,強度變化只發生在邊界上。所以,你可以很容易地通過觀察像素強度的變化來識別邊緣。
現在,看下這張圖片。強度不是恒定的,但強度的變化率在邊緣處最高。(微積分復習:變化率可以用一階導數(梯度)來計算。)
Canny邊緣檢測器通過4步來識別邊緣:
去噪:因為這種方法依賴于強度的突然變化,如果圖像有很多隨機噪聲,那么會將噪聲作為邊緣。所以,使用5×5的高斯濾波器平滑你的圖像是一個非常好的主意。
梯度計算:下一步,我們計算圖像中每個像素的強度的梯度(強度變化率)。我們也計算梯度的方向。
梯度方向垂直于邊緣,它被映射到四個方向中的一個(水平、垂直和兩個對角線方向)。
非極大值抑制:現在,我們想刪除不是邊緣的像素(設置它們的值為0)。你可能會說,我們可以簡單地選取梯度值最高的像素,這些就是我們的邊。然而,在真實的圖像中,梯度不是簡單地在只一個像素處達到峰值,而是在臨近邊緣的像素處都非常高。因此我們在梯度方向上取3×3附近的局部最大值。
遲滯閾值化:在下一步中,我們需要決定一個梯度的閾值,低于這個閾值所有的像素都將被抑制(設置為0)。而Canny邊緣檢測器則采用遲滯閾值法。遲滯閾值法是一種非常簡單而有效的方法。我們使用兩個閾值來代替只用一個閾值:
高閾值 = 選擇一個非常高的值,這樣任何梯度值高于這個值的像素都肯定是一個邊緣。
低閾值 = 選擇一個非常低的值,任何梯度值低于該值的像素絕對不是邊緣。
在這兩個閾值之間有梯度的像素會被檢查,如果它們和邊緣相連,就會留下,否則就會去掉。
遲滯閾值化
Canny 邊緣檢測的問題:
由于Canny邊緣檢測器只關注局部變化,沒有語義(理解圖像的內容)理解,精度有限(很多時候是這樣)。
Canny邊緣檢測器在這種情況下會失敗,因為沒有理解圖像的上下文
語義理解對于邊緣檢測是至關重要的,這就是為什么使用機器學習或深度學習的基于學習的檢測器比canny邊緣檢測器產生更好的結果。
以上便是此次小編帶來的檢測相關內容,通過本文,希望大家對邊緣檢測具備一定的認知。如果你喜歡本文,不妨持續關注我們網站哦,小編將于后期帶來更多精彩內容。最后,十分感謝大家的閱讀,have a nice day!
下一篇: PLC、DCS、FCS三大控
上一篇: 邊緣檢測有哪些步驟?c