申嘉錫,齊 華,王 晨
(1.西安工業大學兵器科學與技術學院,西安 710021;2.西安工業大學兵器電子信息學院,西安 710021;3.西安工業大學電子信息學院,西安 710021)
圖像邊緣是指其周圍像素灰度變化劇烈點的部分。實際在圖像邊緣檢測時就是將這些點找到,然后連接起來。實際檢測中在存在噪聲干擾的情況下,采用傳統Canny算子進行邊緣檢測,噪聲會被誤當作邊緣,因此,需要對傳統Canny算子進行改進,從而得到邊緣檢測圖像。
本文分析了傳統的Canny算子的基本原理,對檢測圖像人為添加噪聲時,使用傳統Canny算子檢測會存在噪聲干擾而被漏檢或誤檢,提出了改進方法。①采用混合濾波替換高斯濾波對圖像平滑處理。②對梯度幅值和方向進行優化求解。③非極大抑制值的改進。結果表明,改進的新算方法提高了圖像邊緣檢測的準確度,不易將噪聲當做邊緣圖像進行檢測出來,有效地進行了去噪處理,實驗效果較好。
1986年,Canny J依據邊緣檢測算子的三個判斷準則,提出了Canny算子,具體實現步驟如下:
高斯濾波消除圖像中的噪聲。

把鄰域中心像素和梯度方向相鄰的梯度幅值進行插值比較,抑制消除非邊緣點產生。
傳統Canny算子是人為設定的高低閾值參數來確定是否是圖像邊緣點。
通過對偽邊緣抑制,最終得到檢測圖像。
傳統的Canny算子檢測是利用高斯濾波進行去噪處理,但是使用高斯濾波器不能直接較好的去除本論文中的噪聲圖像,當我們人為的給需要檢測的圖片中添加部分比例的椒鹽噪聲和高斯噪聲時,發現使用傳統Canny算子去噪處理效果較差,因此本文提出利用混合濾波對圖片進行去噪處理。
2.1.1 中值濾波
用目標點四周多個像素灰度的均值與周圍的像素值進行替換。算法流程如圖1所示。

圖1 中值濾波算法流程
要想使濾波之后的結果達到理想的效果,最佳的窗口尺寸大小很難確定,需要嘗試不同窗口下的濾波效果。本文選擇的的是3×3窗口大小,對本文中添加的噪聲用中值濾波能有效的消除干擾噪聲和點狀噪聲,消除只有一個高斯濾波器對復雜噪聲的處理效果差的情況。
2.1.2 均值濾波
基本思想是選用一個由其鄰域像素所構成模板并將該模板中所含像素的灰度求和取平均且以此均值將原像素灰度取而代之。
二者是以中值濾波的輸出作為均值濾波的輸入,降噪處理。去噪流程圖如圖2所示。

圖2 改進算法去噪流程
傳統的Canny算子采用的是2×2范圍來計算梯度幅值和方向,考慮到對于手動添加椒鹽噪聲或者高斯噪聲的圖像,使用傳統方法對噪聲濾除敏感,容易把噪聲當成邊緣,因此本文使用改進的3×3范圍內4個方向來替代傳統的兩個方向計算梯度幅值和方向。增加了45°和135°。梯度幅值和方向分別為:

本文采用3×3范圍對所有元素沿梯度方向中的點依次進行插值并和目標中心元素幅度值進行大小比較,若兩個插值都比目標點的梯度幅值大,則將目標點值設置為0。否則置為1。通過上述一次與插值進行比較就能夠逐漸得到最大邊緣點的集合,從而得到更加完整的邊緣檢測圖像。
以上是本論文對傳統方法的改進,改進算法流程如圖3所示。

圖3 改進的Canny算子流程
本次實驗的環境:在PyCharm結合Opencv庫對同一幅圖像在有噪聲(濃度=0.1椒鹽噪聲,濃度=0.1高斯噪聲)和無噪聲人為干擾下,得到的檢測結果。
從實驗結果可以看出,在無噪聲條件下,改進Canny算法與Canny算法檢測結果存在一點的誤差,主要的差別就是對偽邊緣、斷邊緣部分能夠更好的判斷,同時將邊緣點能偶更好的連接起來。主要在圖4中的(b)和(c)圖,能夠明顯的看到改進的Canny算子對邊緣的檢測提取更加完整沒有出現偽邊緣以及斷邊緣的情況。

圖4 Lena圖像效果
當加入濃度為0.1的椒鹽噪聲時,改進的Canny算子顯示結果相對較好,對椒鹽噪聲起到了去噪效果,也對于偽邊緣的抑制效果更好,邊緣檢測質量也較為理想,檢測出來的邊緣清晰,邊緣的連續性較好。而傳統Canny算子會當成圖像邊緣處理,構成了一種噪聲是邊緣的假象。
當加入濃度為0.1的高斯噪聲時,使用傳統的高斯濾波去噪效果不是特別的明顯,只是起到了輕微的去噪平光滑效果,相比于對椒鹽噪聲的邊緣檢測效果有所改善。
通過以上描述能夠得到結論:在未加入噪聲時,對圖像進行邊緣處理,傳統的Canny邊緣檢測算子會出現偽邊緣以及邊緣弱化的情況。加入噪聲時傳統的Canny檢測算子會誤把噪聲當成邊緣進行處理效果很不理想,但是對人為添加椒鹽噪聲和高斯噪聲的圖像而言,基于傳統Canny算子改進的算法對圖像邊緣的檢測效果明顯,噪聲與邊緣的區分度好,驗證了本文利用對Canny算子的改進起到了對添加高斯噪聲和椒鹽噪聲檢測效果。
通過實驗驗證改進的算法對一定密度的椒鹽噪聲和高斯噪聲的檢測效果明顯,本文針對存在某種特定噪聲進行檢測處理,實際圖像噪聲可能更加很復雜。
本文對傳統Canny檢測算法中一些不足進行了改進,利用混合濾波器替代高斯濾波器對圖像實施去噪處理,使用8領域內四個方向的偏導數求梯度幅值和方向,使用鄰域內插值比較的方式對非極大值抑制進行優化,閾值選取方面使用人工調試的方式,使邊緣檢測得到最好的效果。高低閾值本論文中設置為50,100,結果證明,傳統Canny對人為添加一定濃度的噪聲時,容易將噪聲和圖像的邊緣進行混淆,得到的檢測圖像效果不佳,但是使用改進后的Canny邊緣檢測算法進行處理使檢測到的圖像邊緣細節更加突出,邊緣檢測的質量也較為理想,驗證了本論文對傳統Canny算子邊緣檢測改進的正確性以及可靠性。