本篇將介紹圖像邊緣檢測中的Canny邊緣檢測,這是傳統邊緣檢測學習中的必學內容,也是圖像算法面試中的常見問題,本文將教會初學者如何在理解算法的基礎之上,通過C語言來實現Canny邊緣檢測算法,從而做到心中有底,胸有成竹。
[定義與算法]
Canny邊緣檢測算子是John F. Canny於 1986 年開發出來的一個多級邊緣檢測算法。由於它理論上的相對完善性和效果的優異,在工業中有廣泛的應用。Canny邊緣檢測如圖Fig.1所示,左邊爲原圖,右邊爲邊緣檢測結果圖,高低閾值的選擇分別爲150和30。
Canny邊緣檢測算法的流程步驟如下(我們統一使用圖一左作爲測試圖):
2. 高斯濾波平滑處理
由於圖像中經常包含一些高斯噪聲,因此,在邊緣檢測前我們要先用高斯濾波器對其進行濾波,關於高斯濾波的內容可以參考前面章節,有詳細的算法說明。爲了方便,通常是使用一些高斯模板,這裏我們使用如下的高斯濾波器模板。