http://blog.youkuaiyun.com/cay22/
最優的階梯型邊緣檢測算法(canny邊緣檢測)
1.Canny邊緣檢測基本原理
(1)圖像邊緣檢測必須滿足兩個條件:一能有效地抑制噪聲;
(2)根據對信噪比與定位乘積進行測度,得到最優化逼近算子。
(3)類似與Marr(LoG)邊緣檢測方法,
2.Canny邊緣檢測算法:
step1:用高斯濾波器平滑圖像;
step2:用一階偏導的有限差分來計算梯度的幅值和方向;
step3:對梯度幅值進行非極大值抑制(這個就不是很明白!!
將梯度角離散為圓周的四個扇區之一,以便3 * 3的窗口作抑制運算。
四個扇區的標號為0到3,對應3*3鄰域的四種可能組合。
在每一點上,鄰域的中心象素M[x, y]與沿著梯度線的兩個象素相比。如果M[x, y]的梯度值不比沿梯度線的兩個相鄰象素梯度值大,則令M[x, y] = 0。
即:
step4:用雙閾值算法檢測和連接邊緣。
解析1:
對非極大值抑製圖像作用兩個閾值th1和th2,兩者關係th1
鏈接邊緣的具體步驟如下:
對圖像2進行掃瞄,當遇到一個非零灰度的像素p(x,y)時,
考察圖像1中與圖像2中q(x,y)點位置對應的點s(x,y)
當完成對包含p(x,y)的輪廓線的連結之後,
至此,完成canny算子的邊緣檢測。
解析2
減少假邊緣段數量的典型方法是對N[i,j]使用一個閾值。
解決方法:雙閾值算法。