轉自
https://blog.csdn.net/zaishuiyifangxym/article/details/89840396
https://xiongyiming.blog.csdn.net/article/details/90142702
1.Roberts算子
基於交叉差分的梯度算法,通過局部差分計算檢測邊緣線條。
常用來處理具有陡峭的低噪聲圖像,當圖像邊緣接近於正45度或負45度時,該算法處理效果更理想。
其缺點是對邊緣的定位不太准確,提取的邊緣線條較粗。
2.Prewitt算子
利用特定區域內像素灰度值產生的差分實現邊緣檢測。由於Prewitt算子采用 33 模板對區域內的像素值進行計算。
Prewitt算子的邊緣檢測結果在水平方向和垂直方向均比Robert算子更加明顯。
Prewitt算子適合用來識別噪聲較多、灰度漸變的圖像。
3.Sobel算子
Sobel算子根據像素點上下、左右鄰點灰度加權差,在邊緣處達到極值這一現象檢測邊緣。對噪聲具有平滑作用,提供較為精確的邊緣方向信息。
因為Sobel算子結合了高斯平滑和微分求導(分化),因此結果會具有更多的抗噪性,當對精度要求不是很高時,Sobel算子是一種較為常用的邊緣檢測方法。
Sobel算子的邊緣定位更准確,常用於噪聲較多、灰度漸變的圖像。
4.拉普拉斯算子
實質是二階微分。
5.canny檢測
Canny算法是一種被廣泛應用於邊緣檢測的標准算法,其目標是找到一個最優的邊緣檢測解或找尋一幅圖像中灰度強度變化最強的位置。最優邊緣檢測主要通過低錯誤率、高定位性和最小響應三個標准進行評價。Canny算子的簡要步驟如下:
(1)去噪聲:應用高斯濾波來平滑圖像,目的是去除噪聲
(2)梯度:找尋圖像的梯度
(3)非極大值抑制:應用非最大抑制技術來過濾掉非邊緣像素,將模糊的邊界變得清晰。該過程保留了每個像素點上梯度強度的極大值,過濾掉其他的值。
(4)應用雙閾值的方法來決定可能的(潛在的)邊界;
(5)利用滯后技術來跟蹤邊界。若某一像素位置和強邊界相連的弱邊界認為是邊界,其他的弱邊界則被刪除。