申嘉錫,齊 華,王 晨
(1.西安工業(yè)大學(xué)兵器科學(xué)與技術(shù)學(xué)院,西安 710021;2.西安工業(yè)大學(xué)兵器電子信息學(xué)院,西安 710021;3.西安工業(yè)大學(xué)電子信息學(xué)院,西安 710021)
圖像邊緣是指其周圍像素灰度變化劇烈點的部分。實際在圖像邊緣檢測時就是將這些點找到,然后連接起來。實際檢測中在存在噪聲干擾的情況下,采用傳統(tǒng)Canny算子進(jìn)行邊緣檢測,噪聲會被誤當(dāng)作邊緣,因此,需要對傳統(tǒng)Canny算子進(jìn)行改進(jìn),從而得到邊緣檢測圖像。
本文分析了傳統(tǒng)的Canny算子的基本原理,對檢測圖像人為添加噪聲時,使用傳統(tǒng)Canny算子檢測會存在噪聲干擾而被漏檢或誤檢,提出了改進(jìn)方法。①采用混合濾波替換高斯濾波對圖像平滑處理。②對梯度幅值和方向進(jìn)行優(yōu)化求解。③非極大抑制值的改進(jìn)。結(jié)果表明,改進(jìn)的新算方法提高了圖像邊緣檢測的準(zhǔn)確度,不易將噪聲當(dāng)做邊緣圖像進(jìn)行檢測出來,有效地進(jìn)行了去噪處理,實驗效果較好。
1986年,Canny J依據(jù)邊緣檢測算子的三個判斷準(zhǔn)則,提出了Canny算子,具體實現(xiàn)步驟如下:
高斯濾波消除圖像中的噪聲。
把鄰域中心像素和梯度方向相鄰的梯度幅值進(jìn)行插值比較,抑制消除非邊緣點產(chǎn)生。
傳統(tǒng)Canny算子是人為設(shè)定的高低閾值參數(shù)來確定是否是圖像邊緣點。
通過對偽邊緣抑制,最終得到檢測圖像。
傳統(tǒng)的Canny算子檢測是利用高斯濾波進(jìn)行去噪處理,但是使用高斯濾波器不能直接較好的去除本論文中的噪聲圖像,當(dāng)我們?nèi)藶榈慕o需要檢測的圖片中添加部分比例的椒鹽噪聲和高斯噪聲時,發(fā)現(xiàn)使用傳統(tǒng)Canny算子去噪處理效果較差,因此本文提出利用混合濾波對圖片進(jìn)行去噪處理。
2.1.1 中值濾波
用目標(biāo)點四周多個像素灰度的均值與周圍的像素值進(jìn)行替換。算法流程如圖1所示。
圖1 中值濾波算法流程
要想使濾波之后的結(jié)果達(dá)到理想的效果,最佳的窗口尺寸大小很難確定,需要嘗試不同窗口下的濾波效果。本文選擇的的是3×3窗口大小,對本文中添加的噪聲用中值濾波能有效的消除干擾噪聲和點狀噪聲,消除只有一個高斯濾波器對復(fù)雜噪聲的處理效果差的情況。
2.1.2 均值濾波
基本思想是選用一個由其鄰域像素所構(gòu)成模板并將該模板中所含像素的灰度求和取平均且以此均值將原像素灰度取而代之。
二者是以中值濾波的輸出作為均值濾波的輸入,降噪處理。去噪流程圖如圖2所示。
圖2 改進(jìn)算法去噪流程
傳統(tǒng)的Canny算子采用的是2×2范圍來計算梯度幅值和方向,考慮到對于手動添加椒鹽噪聲或者高斯噪聲的圖像,使用傳統(tǒng)方法對噪聲濾除敏感,容易把噪聲當(dāng)成邊緣,因此本文使用改進(jìn)的3×3范圍內(nèi)4個方向來替代傳統(tǒng)的兩個方向計算梯度幅值和方向。增加了45°和135°。梯度幅值和方向分別為:
本文采用3×3范圍對所有元素沿梯度方向中的點依次進(jìn)行插值并和目標(biāo)中心元素幅度值進(jìn)行大小比較,若兩個插值都比目標(biāo)點的梯度幅值大,則將目標(biāo)點值設(shè)置為0。否則置為1。通過上述一次與插值進(jìn)行比較就能夠逐漸得到最大邊緣點的集合,從而得到更加完整的邊緣檢測圖像。
以上是本論文對傳統(tǒng)方法的改進(jìn),改進(jìn)算法流程如圖3所示。
圖3 改進(jìn)的Canny算子流程
本次實驗的環(huán)境:在PyCharm結(jié)合Opencv庫對同一幅圖像在有噪聲(濃度=0.1椒鹽噪聲,濃度=0.1高斯噪聲)和無噪聲人為干擾下,得到的檢測結(jié)果。
從實驗結(jié)果可以看出,在無噪聲條件下,改進(jìn)Canny算法與Canny算法檢測結(jié)果存在一點的誤差,主要的差別就是對偽邊緣、斷邊緣部分能夠更好的判斷,同時將邊緣點能偶更好的連接起來。主要在圖4中的(b)和(c)圖,能夠明顯的看到改進(jìn)的Canny算子對邊緣的檢測提取更加完整沒有出現(xiàn)偽邊緣以及斷邊緣的情況。
圖4 Lena圖像效果
當(dāng)加入濃度為0.1的椒鹽噪聲時,改進(jìn)的Canny算子顯示結(jié)果相對較好,對椒鹽噪聲起到了去噪效果,也對于偽邊緣的抑制效果更好,邊緣檢測質(zhì)量也較為理想,檢測出來的邊緣清晰,邊緣的連續(xù)性較好。而傳統(tǒng)Canny算子會當(dāng)成圖像邊緣處理,構(gòu)成了一種噪聲是邊緣的假象。
當(dāng)加入濃度為0.1的高斯噪聲時,使用傳統(tǒng)的高斯濾波去噪效果不是特別的明顯,只是起到了輕微的去噪平光滑效果,相比于對椒鹽噪聲的邊緣檢測效果有所改善。
通過以上描述能夠得到結(jié)論:在未加入噪聲時,對圖像進(jìn)行邊緣處理,傳統(tǒng)的Canny邊緣檢測算子會出現(xiàn)偽邊緣以及邊緣弱化的情況。加入噪聲時傳統(tǒng)的Canny檢測算子會誤把噪聲當(dāng)成邊緣進(jìn)行處理效果很不理想,但是對人為添加椒鹽噪聲和高斯噪聲的圖像而言,基于傳統(tǒng)Canny算子改進(jìn)的算法對圖像邊緣的檢測效果明顯,噪聲與邊緣的區(qū)分度好,驗證了本文利用對Canny算子的改進(jìn)起到了對添加高斯噪聲和椒鹽噪聲檢測效果。
通過實驗驗證改進(jìn)的算法對一定密度的椒鹽噪聲和高斯噪聲的檢測效果明顯,本文針對存在某種特定噪聲進(jìn)行檢測處理,實際圖像噪聲可能更加很復(fù)雜。
本文對傳統(tǒng)Canny檢測算法中一些不足進(jìn)行了改進(jìn),利用混合濾波器替代高斯濾波器對圖像實施去噪處理,使用8領(lǐng)域內(nèi)四個方向的偏導(dǎo)數(shù)求梯度幅值和方向,使用鄰域內(nèi)插值比較的方式對非極大值抑制進(jìn)行優(yōu)化,閾值選取方面使用人工調(diào)試的方式,使邊緣檢測得到最好的效果。高低閾值本論文中設(shè)置為50,100,結(jié)果證明,傳統(tǒng)Canny對人為添加一定濃度的噪聲時,容易將噪聲和圖像的邊緣進(jìn)行混淆,得到的檢測圖像效果不佳,但是使用改進(jìn)后的Canny邊緣檢測算法進(jìn)行處理使檢測到的圖像邊緣細(xì)節(jié)更加突出,邊緣檢測的質(zhì)量也較為理想,驗證了本論文對傳統(tǒng)Canny算子邊緣檢測改進(jìn)的正確性以及可靠性。