吳月波,徐 晨,董 蓉
(南通大學(xué) 電子信息學(xué)院,江蘇 南通226019)
隨著圖像檢測(cè)技術(shù)的發(fā)展,視覺檢測(cè)的應(yīng)用研究在各個(gè)領(lǐng)域受到了廣泛關(guān)注。視覺檢測(cè)原理是以圖像為信息載體并從中提取幾何參數(shù)。在視覺檢測(cè)領(lǐng)域中,被測(cè)圖像邊緣的定位精度往往直接影響到整個(gè)檢測(cè)的精度。因此,對(duì)圖像邊緣的精確定位具有很大的實(shí)際意義。傳統(tǒng)的邊緣檢測(cè)算法是利用一階和二階微分算子考察圖像的每個(gè)像素在某個(gè)區(qū)域內(nèi)的灰度變化,如Canny 算子[1]、Sobel 算子[2]、LOG 算子[3]以及Laplacian 算子[4]等,這些算子[5]大都為整像素級(jí),形式簡(jiǎn)單,邊緣檢測(cè)的速度快,但容易受到噪聲的影響,定位精度較差。隨著對(duì)邊緣檢測(cè)精度要求的不斷提高,傳統(tǒng)的邊緣檢測(cè)算法已經(jīng)很難滿足實(shí)際需求。因此,定位精度更高的亞像素邊緣檢測(cè)越來(lái)越受到人們的關(guān)注。從20 世紀(jì)70 年代以來(lái),就有很多學(xué)者提出了一些有效的亞像素邊緣定位算法[6]。目前常用的亞像素邊緣定位算法可以歸納為三類:矩法[7-8]、插值法[9]和擬合法[10]。基于矩的亞像素邊緣檢測(cè)算法形式較為復(fù)雜,計(jì)算時(shí)間較長(zhǎng),但圖像的平移不影響邊緣的檢測(cè);基于插值的亞像素邊緣檢測(cè)算法計(jì)算時(shí)間較短,具有良好的抗噪性能,但定位精度較低;基于擬合的亞像素邊緣算法對(duì)噪聲有較好的抑制,邊緣的定位精度較高,因此,基于擬合的亞像素的邊緣檢測(cè)算法得到了許多人的青睞。
本文提出了一種基于灰度梯度和反正切函數(shù)擬合的的亞像素邊緣檢測(cè)算法,它需要提取輸入圖像的灰度梯度方向,建立灰度梯度直角坐標(biāo)系,坐標(biāo)軸正方向由提取的梯度方向來(lái)確定,x 軸表示所選擇的像素在梯度方向上的坐標(biāo),y 軸表示所選擇的像素的灰度值,最后利用最小二乘法,采用反正函數(shù)擬合提取的圖像邊緣的灰度梯度,實(shí)現(xiàn)亞像素邊緣檢測(cè)。本文算法是一種定位精度更高、檢測(cè)速度更快的亞像素邊緣檢測(cè)算法。
本文所提算法是結(jié)合Canny 算子和反正切函數(shù)擬合圖像邊緣的灰度梯度實(shí)現(xiàn)邊緣的精確定位,其算法具體原理如下。
1)Canny 算子[1]是通過(guò)求信號(hào)函數(shù)的極大值來(lái)得到圖像邊緣像素的邊緣檢測(cè)算子。利用Canny 算子獲得圖像邊緣像素的具體步驟如下,見圖1。
圖1 Canny 算子邊緣檢測(cè)
步驟1:將原始輸入圖像與高斯濾波器進(jìn)行卷積,以達(dá)到平滑圖像、去除噪聲的目的。
步驟2:用2×2 一階偏導(dǎo)的有限差分來(lái)計(jì)算濾波后圖像邊緣中的每個(gè)像素的梯度幅值及其方向。
使用2×2 有限差分模板作為x 方向和y 方向偏導(dǎo)數(shù)的兩個(gè)陣列f'x(x,y)和f'y(x,y)的一階近似來(lái)計(jì)算已平滑圖像g(x,y)的梯度
由式(1)和式(2)得到一個(gè)2×2 正方形有限差分模板,如表1 所示。
表1 2×2 有限差分模板
在表1 中的2×2 正方形內(nèi)求出有限差分的平均值,用直角坐標(biāo)到極坐標(biāo)的坐標(biāo)轉(zhuǎn)換公式計(jì)算得
式(3)中M(x,y)表示每個(gè)像素的梯度幅值,式(4)中θ(x,y)表示每個(gè)像素的梯度方向。
步驟3:為得到圖像的邊緣,要保留邊緣局部梯度幅值較大的點(diǎn),并且對(duì)非極大值進(jìn)行抑制,最后生成細(xì)化的圖像邊緣。
步驟4:用兩個(gè)閾值h1和h2(令h1≈0.5h2)分別作用于非極大值抑制處理的圖像后,得到圖像1 和圖像2,圖像1 去除了大部分噪聲,但卻丟失了有用的邊緣信息,而圖像2 則保留了更多的邊緣信息,在圖像2 的基礎(chǔ)上,補(bǔ)充圖像1 中丟失的邊緣信息,然后連接邊緣,這樣就得到了輸入圖像的初步邊緣。
2)由于光學(xué)器件的卷積和光的衍射作用,在物空間劇變的圖像邊緣的灰度值經(jīng)過(guò)光學(xué)器件成像后變成了漸變的形式,也就是階躍邊緣變成了漸變的邊緣,如圖2 所示。
圖2 理想邊緣和實(shí)際邊緣模型
反正切函數(shù)是數(shù)學(xué)中一類與常見三角函數(shù)類似的函數(shù),它是一個(gè)連續(xù)、光滑、單調(diào)的反三角函數(shù),函數(shù)圖像如圖3 所示,由于反正切函數(shù)的圖像和邊緣模型極其相似,因此,可利用反正切函數(shù)作為邊緣模型[11]擬合圖像邊緣實(shí)際的灰度分布情況。
圖3 反正切函數(shù)圖像
反正切函數(shù)的邊緣模型為式中:a1表示將反正切函數(shù)趨于的最大值與最小值擴(kuò)大至原來(lái)的a1倍;a2和a3表示反正切函數(shù)曲線彎曲的程度,a2和a3的值越大,曲線彎曲的程度越大;a4表示反正切函數(shù)在y軸的偏移量。用最小二乘法進(jìn)行擬合,求出a1,a2,a3和a4,進(jìn)而得到邊緣的亞像素位置。
求圖像邊緣的亞像素位置的具體步驟如下:
對(duì)式(5)求一階導(dǎo)數(shù)得
將式(6)對(duì)x 求導(dǎo)并令其導(dǎo)數(shù)為0 得
在算法原理的基礎(chǔ)上,算法的實(shí)現(xiàn)步驟如下。
步驟1:通過(guò)Canny 算子對(duì)輸入圖像進(jìn)行處理,粗略提取該圖像的邊緣。
步驟2:對(duì)粗略得到的圖像邊緣逐點(diǎn)的提取圖像邊緣像素的梯度方向,提取的梯度方向被量化成8 種情況,如圖4 所示。當(dāng)提取的梯度方向如圖4 陰影部分所示時(shí),那么此時(shí)的梯度方向?qū)?huì)量化在第5 種情況中?;谶@個(gè)考慮,建立直角坐標(biāo)系,坐標(biāo)軸的正方向就可以由邊緣像素點(diǎn)的八鄰域梯度方向確定,并且這個(gè)邊緣像素點(diǎn)必須為Canny 算子提取的原始像素點(diǎn),然后在原始邊緣像素點(diǎn)的周圍選擇一定數(shù)量的像素點(diǎn),將Canny 算子提取的原始邊緣像素的橫坐標(biāo)設(shè)為0,那么在其周圍提取的像素點(diǎn)的坐標(biāo)也做相應(yīng)的改變,加入到邊緣檢測(cè)窗口中,如圖5 所示。
圖4 八鄰域梯度方向
圖5 邊緣檢測(cè)窗口
步驟3:邊緣檢測(cè)窗口中的藍(lán)色方塊表示由Canny 算子提取的邊緣像素。坐標(biāo)系的x 軸表示在梯度方向上的像素的坐標(biāo),坐標(biāo)系的y 軸表示所選擇的像素的灰度值。
步驟4:建立了灰度梯度直角坐標(biāo)系之后,使用反正切函數(shù)擬合邊緣檢測(cè)窗口中像素的灰度值,并通過(guò)最小二乘法處理計(jì)算出圖像邊緣的亞像素位置R=。例如,邊緣檢測(cè)窗口如圖3 所示,可以通過(guò)圖6 所示的函數(shù)擬合計(jì)算出參數(shù)a2和a3的值,進(jìn)而計(jì)算出R=0.131 6。
圖6 函數(shù)擬合圖
為了驗(yàn)證本文算法的穩(wěn)定性和精確性,采用Microsoft Visual Studio 2008 平臺(tái),分別用小波變換法、基于Zernike 矩法和本文所提算法,編程實(shí)現(xiàn)對(duì)兩幅不同圖像的邊緣檢測(cè)。第一幅為圖像處理常用的Lena 圖,第二幅為airplane 圖。實(shí)驗(yàn)結(jié)果如圖7、圖8 所示。
圖7 Lena 圖邊緣檢測(cè)結(jié)果
對(duì)圖像邊緣檢測(cè)的評(píng)價(jià)可以分為主觀和客觀兩種評(píng)價(jià)標(biāo)準(zhǔn)[12]。主觀評(píng)價(jià)標(biāo)準(zhǔn)是以檢測(cè)到的圖像邊緣的視覺效果為根本出發(fā)點(diǎn),并以此來(lái)評(píng)價(jià)圖像邊緣檢測(cè);客觀評(píng)價(jià)標(biāo)準(zhǔn)是以檢測(cè)到的圖像邊緣的連續(xù)性、有效性等為統(tǒng)一的評(píng)價(jià)指標(biāo),從上面兩組圖中各種算法對(duì)兩幅圖像的邊緣檢測(cè)結(jié)果,通過(guò)主觀評(píng)價(jià),可以明顯看出基于小波的亞像素邊緣檢測(cè)算法抗噪性能一般,并且檢測(cè)到的邊緣較少,會(huì)出現(xiàn)漏檢邊緣的現(xiàn)象;
圖8 airplane 圖邊緣檢測(cè)結(jié)果
基于Zernike 矩的亞像素邊緣檢測(cè)算法檢測(cè)的邊緣比較完整,而且邊緣連接性較好,但容易受到冗余信息的干擾;而本文所提算法能夠更完整、有效地檢測(cè)圖像的邊緣,具有更高的抗噪性能,并且可以克服冗余信息的干擾,得到更加平滑完整的圖像邊緣。
客觀評(píng)價(jià)標(biāo)準(zhǔn)通過(guò)統(tǒng)計(jì)連接圖像的邊緣點(diǎn)數(shù)、4-連通成分?jǐn)?shù)和8-連通成分?jǐn)?shù)及連通成分比率這些指標(biāo)對(duì)檢測(cè)到的不同圖像邊緣進(jìn)行客觀的比較。結(jié)果如表2、表3 所示。
表2 Lena 圖檢測(cè)結(jié)果
表3 airplane 圖檢測(cè)結(jié)果
表2、表3 中A 表示檢測(cè)邊緣的點(diǎn)數(shù),B 與C 分別表示檢測(cè)邊緣圖中的4-連通區(qū)域數(shù)和8-連通區(qū)域數(shù)。B/A 和C/A分別是4-連通區(qū)域數(shù)和8-連通區(qū)域數(shù)在邊緣總點(diǎn)數(shù)中所占的比例,這個(gè)比例越小,說(shuō)明檢測(cè)圖像邊緣的連續(xù)性越好。
通過(guò)表中的數(shù)據(jù)可以得出,本文所提算法和其余兩種算法相比,B/A 和C/A 這兩項(xiàng)指標(biāo)最小,說(shuō)明本文算法提取的圖像邊緣有最好的效果和連續(xù)性。
利用Microsoft Visual Studio 2008 平臺(tái),統(tǒng)計(jì)本文算法、基于小波的亞像素邊緣檢測(cè)算法及基于Zernike 矩的亞像素邊緣檢測(cè)算法的各個(gè)時(shí)間點(diǎn)檢測(cè)到的邊緣像素,如圖9 所示。然后,計(jì)算出這3 種邊緣檢測(cè)算法的平均運(yùn)算時(shí)間,如表4 所示。結(jié)果表明,通過(guò)與小波變換法及Zernike 矩法各個(gè)時(shí)間點(diǎn)檢測(cè)的邊緣像素和運(yùn)算時(shí)間進(jìn)行比較,可以明顯地得出,本文算法檢測(cè)速度更快。
圖9 各種算法的邊緣檢測(cè)運(yùn)算速度
表4 各種算法邊緣檢測(cè)運(yùn)算時(shí)間對(duì)比
本文提出了一種基于灰度梯度和反正切函數(shù)擬合的亞像素邊緣檢測(cè)算法。該算法第一步是用傳統(tǒng)的邊緣檢測(cè)算子Canny 算子粗略地提取圖像邊緣的灰度梯度,第二步是創(chuàng)建灰度梯度直角坐標(biāo)系,坐標(biāo)系的x 軸表示所選擇的像素在梯度方向上的像素的坐標(biāo),坐標(biāo)系的y 軸表示所選擇的像素的灰度值,最后使用反正切函數(shù)擬合Canny 算子提取的圖像邊緣的灰度梯度,并通過(guò)最小二乘法計(jì)算出圖像邊緣的亞像素位置。通過(guò)與基于小波變換法和基于Zernike 矩法的圖像邊緣檢測(cè)算法對(duì)比,驗(yàn)證了本文算法定位精度更高,運(yùn)算速度更快,可有效克服冗余信息的干擾,并且漏檢率低,可以準(zhǔn)確檢測(cè)到更加完整平滑的圖像邊緣。
[1]陳世文,劉越暢.一種基于最小交叉熵的Canny 邊緣檢測(cè)算法[J].電視技術(shù),2013,37(1):165-168.
[2]SUN Lihua,ZHAO Enliang,MA Long,et al. An edge detection method based on improved sobel operator[C]//Proc.Advanced Materials Research.[S.l.]:IEEE Press,2014:971-973.
[3]ZHANG Jianxin,CHANG Wei,WU Lang.Edge detection based on general grey correlation and LOG operator[C]//Proc. International Conference on Artificial Intelligence and Computational Intelligence.[S.l.]:IEEE Press,2010:480-483.
[4]LUO Yan,LUO Zhiguo. Symmetric positive solutions for nonlinear boundary value problems with φ{(diào)symbol}-Laplacian operator[J].Applied Mathematics Letters,2010,23(6):657-664.
[5]趙玲,張偉. 圖像處理中邊緣檢測(cè)算法性能的分析[J]. 科技資訊,2014,12(14):23-24.
[6]孫少紅,袁華,張彤. 常用的亞像素邊緣檢測(cè)方法的對(duì)比研究[J]. 大眾科技,2014,16(176):27-29
[7]付鵬,高曉蓉. 基于矩的亞像素邊緣檢測(cè)算法的對(duì)比研究[J].微計(jì)算機(jī)信息,2007,23(18):264-265,279.
[8]李永明. 基于Hessian 矩陣的邊緣檢測(cè)方法[J]. 激光雜志,2014,35(5):27-30.
[9]孫秋成,周亞洲,寧闖,等 基于三次樣條插值的亞像素邊緣檢測(cè)方法[J].控制工程,2014,21(2):290-293.
[10]ARCHIBALD R,GELB A,YOON J. Polynomial fitting for edge detection in irregularly sampled signals and images[J]. SIAM Journal on Numerical Analysis,2005,43(1):259-279.
[11]孫維健.一種新的亞像素邊緣檢測(cè)算法[J]. 數(shù)字技術(shù)與應(yīng)用,2014(2):126-127.
[12]林卉,趙長(zhǎng)勝,舒寧.基于Canny 算子的邊緣檢測(cè)及評(píng)價(jià)[J].黑龍江工程學(xué)院學(xué)報(bào),2003,17(2):3-6.