邊緣是指局部強度變化最顯著部分.主要存在于目標與目標,、目標與背景、區(qū)域與區(qū)域之間,,是圖像分割,、紋理特征和形狀特征等圖像分析的重要基礎(chǔ)。如何快速,、準確提取圖像的邊緣信息一直是國內(nèi)外研究的熱點,,目前已有多種邊緣檢測算法,其中最經(jīng)典的算法就是Sobel算法,。該算法由于計算量小,、速度快,廣泛應用于諸多領(lǐng)域,,但其檢測方向有限,,抗噪能力較低,因此,,該算法也具有一定的局限性,。而且,實際應用中,,像素級已無法滿足精度要求,,只能采用亞像素級的細分算法。
這里給出擴展的4個方向的Sobel算子,,即采用4個方向的模板,,細化處理其梯度方向圖,鑒于插值法計算量小,、精度高的特點,,故選用二次多項式插值法實現(xiàn)亞像素細分,。
2 擴展的Sobel細化算子
2.1 擴展的兩個模板
圖像目標的邊緣是灰度不連續(xù)性的反映,其種類可粗略區(qū)分為:階躍性邊緣和層頂狀邊緣,。前者的兩邊像素點灰度值顯著不同,,后者位于灰度值從增加到減少的變化轉(zhuǎn)折點。為了更準確描述圖像邊緣點.減少噪聲對其檢測結(jié)果的影響,,提高算子的抗噪能力,,在水平、垂直模板的基礎(chǔ)上重新構(gòu)造2個3x3的模板,,模板各個位置的權(quán)重是由該位置到中心點的距離以及該位置在模板中所在的方向決定的,,等距離的點具有相同權(quán)重,如圖l所示,。這里選用最高輸出模板所對應的邊緣梯度值作為像元邊緣梯度強度,。
2.2 Sobel算子細化邊緣
圖像邊緣包含圖像的大量信息,但模板計算的數(shù)值僅僅只是圖像對應的梯度圖像,,邊緣出現(xiàn)于梯度較大位置,,若想提取圖像邊緣必須設(shè)定閾值將其二值化。由一階梯度算子得到梯度圖像,,一般邊緣較粗,,若直接對其梯度圖像設(shè)定閾值進行二值化,很難找到合適的閾值.也不便于邊緣連接與邊緣特征提取等后期處理,。因此在對圖像梯度圖像進行二值化前,,必須細化所檢測的梯度邊緣。細化原理是基于經(jīng)典Sobel算子定義的:
梯度方向為:
Sobel算子模板中的元素表示算式中相應像素的權(quán)重因子,。Sobel算子是邊緣檢測算子,,故其處理模板中各因子之和為零。另一方面,,由于正因子和負因子之和分別為4和一4,,在極端情況下處理結(jié)果可能溢出。因此,,在實際使用時,,Sobel算子通常采用已設(shè)定閾值進行二值化,即處理結(jié)果得到的是已二值化的邊緣圖,。該結(jié)果將導致邊緣圖中幅值較小的邊緣丟失。為了克服這個缺陷,,引入一個衰減因子Scale,,用它去除計算結(jié)果,來消除數(shù)據(jù)的溢出,,而無需二值化處理,,而且其結(jié)果是無失真的灰階邊緣圖,從而保留所有邊緣數(shù)值同。加入擴展的模板后可得:
因子Scale取4,,它也是歸一化因子,,即兩個灰度層的階躍,交界處的處理結(jié)果就是其灰度差值,。
灰度圖像細化處理步驟如下:①對灰度圖像作帶衰減因子的Sobel處理,,得灰度邊緣圖。Sobel處理采用式(3),;②對所得灰度邊緣圖再作帶衰減因子的Sobel處理,;③灰度邊緣圖減去Sobel處理結(jié)果,再將與負值部分對應的邊緣點的值改為零,,得到細化的邊緣圖,。
3 多項式插值亞像素細分的精定位
運用Sobel細化算子改進的方向模板獲取邊緣點的梯度方向,可采用已知的邊緣點的梯度方向近似代替未知的亞像素點的梯度方向,,并在該方向上進行二次多項式插值得到邊緣的亞像素位置,。
對于灰度圖像中任意點的梯度幅值用R表示,設(shè)R0為邊緣點P0(m,n)的灰度梯度方向的模,,R-1,,R1分別是在梯度方向上與P0相鄰的兩像素點P-1,P1的梯度幅值,,經(jīng)推導可得亞像素點的坐標(xe,ye)為:
式中:W為相鄰像素點到邊緣點距離,,θ為梯度方向與x軸正向夾角。
由式(4)可得出,,亞像素細分定位邊緣的前提條件為:R0>R-1且R0>R1,。
采用擴展的Sobel細化算子搜索單像素邊緣,在搜索過程中,,剔除邊緣點梯度方向的非極大值,,從而保證亞像像素細分定位的前提條件成立。方向模板與P-1,,P1點坐標對應表如表1所示,。
4 實驗與結(jié)果分析
為了驗證該算法,提取在線實時采集的微小零件圖像進行實驗,。
(1)可擴展的Sobel細化算子的驗證 引入灰階Sobel算子后,,得到的邊緣圖仍是灰階圖像,此時采用Sobel算子處理,,得到邊緣的邊緣圖,。在新的邊緣圖上,原邊緣的兩側(cè)得到新的邊緣,,而中間部分卻變成背景,,且其寬度小于原邊緣,。利用該特點細化原邊緣,即將原邊緣減去新邊緣圖,,再將結(jié)果中與負的部分對應的邊緣變?yōu)榱?,最后得到接近單像素寬的邊緣圖,從而達到細化邊緣的效果,,如圖2所示,。
(2)亞像素細分算法定位 經(jīng)過擴展方向模板的Sobel細化算子后,提取接近單像素的邊緣,,在其梯度方向上用亞像素細分算法對圖像邊緣進一步定位,。
圖3是在原邊緣基礎(chǔ)上取一段圓弧,對其細分前后的坐標圖,,可以看出,,經(jīng)過亞像素細分算法定位后得到的像素邊緣比較光滑。相對于未細分,,其精確度得到提高,。
(3)計算標準偏差 以單個點的像素坐標值為標準坐標值,將定位后的單點與對應點的坐標差作為算法偏差,,計算得到的標準偏差約0.20 pixel,。
5 結(jié)論
采用的邊緣檢測算法是通過擴展的4個方向的Sobel算子引入衰減因子而得到無失真的灰階邊緣圖,再采用Sobel算子細化,,可使較陡邊緣部分光滑連續(xù),,且接近單點寬的邊緣;采用二次多項式插值法在梯度方向插值后得到光滑邊緣,,定位精度達到0.20 pixel,,適于對精度要求較高的視覺系統(tǒng)。