canny 最好。但是容易把
噪點誤判為邊界。sobel prewitt log 效果差不多。prewitt比sobel 去噪效果好。roberts馬馬虎虎。適合什么圖片那得看圖片的
噪點情況,一般canny 算子是最好的。
邊緣檢測算子一階的有Roberts Cross算子,Prewitt算子,Sobel算子,Canny算子, Krisch算子,羅盤算子;而二階的還有Marr-Hildreth,在梯度方向的二階導數過零點。
Roberts算子
一種利用局部差分算子尋找邊緣的算子,分別為4領域的坐標,且是具有整數像素坐標的輸人圖像;其中的平方根運算使得該處理類似於人類視覺系統中發生的過程。
Sobel算子
一種一階微分算子,它利用像素鄰近區域的梯度值來計算1個像素的梯度,然后根據一定的絕對值來取舍。
Prewitt算子
Prewitt算子是3*3算子模板。2個卷積核dx ,不要形成了Prewitt算子。與Sobel算子的方法一樣,圖像中的每個點都用這2個核進行卷積,取最大值作為輸出值。
各個算子的優缺點:
Robert算子定位比較精確,但由於不包括平滑,所以對於噪聲比較敏感。
Prewitt算子和Sobel算子都是一階的微分算子,而前者是平均濾波,后者是加權平均濾波且檢測的圖像邊緣可能大於2個像素。這兩者對灰度漸變低噪聲的圖像有較好的檢測效果,但是對於混合多復雜噪聲的圖像,處理效果就不理想了。
LOG濾波器方法通過檢測二階導數過零點來判斷邊緣點。LOG濾波器中的a正比於低通濾波器的寬度,a越大,平滑作用越顯著,去除噪聲越好,但圖像的細節也損失越大,邊緣精度也就越低。所以在邊緣定位精度和消除噪聲級間存在着矛盾,應該根據具體問題對噪聲水平和邊緣點定位精度要求適當選取。