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