常見的邊緣檢測算子有Roberts算子、Prewitt算子、Sobel算子、Marr-Hidreth邊緣檢測以及canny算子等。
一、利用梯度進行邊緣檢測
1、Roberts算子采用對角線方向相鄰兩像素之差近似的梯度幅值來檢測邊緣。該算子定位較準確,但對噪聲比較敏感,檢測水平和豎直邊緣效果好于斜向邊緣。
2、Sobel算子根據圖像的像素點上下、左右鄰點灰度加權差在邊緣處達到極值這一特點來檢測邊緣。該算子對噪聲有較好的平滑作用,能提供建準確的邊緣方向信息,但是邊緣定位精度不高。
3、Prewitt算子邊緣檢測的思路與Sobel算子類似,也是在一個掩模中定義微分運算。算子對噪聲具有平滑作用,同樣定位精度不夠高。
二、更為先進的邊緣檢測技術
1、Marr-Hildreth算法(拉普拉斯算子)
(1)采用高斯低通濾波器對圖像進行濾波;
(2)采用拉普拉斯模板對進行卷積;
(3)找到步驟(2)所得圖像的零交叉。
該算子是二階微分算子,利用邊緣點處二階導函數出現(xiàn)零交叉原理來檢測圖像的邊緣。對灰度突變及噪聲較敏感,不具有方向性,不能獲得圖像邊緣的方向信息。
2、Canny算子
Canny邊緣檢測算法步驟:
(1)用一個高斯濾波器平滑輸入圖像
(2)計算梯度幅值圖像和角度圖像
(3)對梯度幅值圖像進行非最大抑制
(4)用雙閾值處理和連接分析來檢測并連接邊緣
Canny算子是上述中效果最好的算子,該算子去噪能力強,在連續(xù)性、細度和筆直度等線的質量方面也很出眾。但是Canny算子的性能帶來的問題是:連接起來更復雜、執(zhí)行時間較長。
綜上所述,在實際工業(yè)生產中,要求實時性較高的情況下,通常采用閾值梯度的方法;當對質量要求較高時,可選擇更為先進的方法,尤其是Canny算子。