基于視覺圖像的微小零件邊緣檢測算法研究
邊緣是指局部強度變化最顯著部分.主要存在于目標與目標、目標與背景、區(qū)域與區(qū)域之間,是圖像分割、紋理特征和形狀特征等圖像分析的重要基礎。如何快速、準確提取圖像的邊緣信息一直是國內外研究的熱點,目前已有多種邊緣檢測算法,其中最經典的算法就是Sobel算法。該算法由于計算量小、速度快,廣泛應用于諸多領域,但其檢測方向有限,抗噪能力較低,因此,該算法也具有一定的局限性。而且,實際應用中,像素級已無法滿足精度要求,只能采用亞像素級的細分算法。
這里給出擴展的4個方向的Sobel算子,即采用4個方向的模板,細化處理其梯度方向圖,鑒于插值法計算量小、精度高的特點,故選用二次多項式插值法實現亞像素細分。
2 擴展的Sobel細化算子
2.1 擴展的兩個模板
圖像目標的邊緣是灰度不連續(xù)性的反映,其種類可粗略區(qū)分為:階躍性邊緣和層頂狀邊緣。前者的兩邊像素點灰度值顯著不同,后者位于灰度值從增加到減少的變化轉折點。為了更準確描述圖像邊緣點.減少噪聲對其檢測結果的影響,提高算子的抗噪能力,在水平、垂直模板的基礎上重新構造2個3x3的模板,模板各個位置的權重是由該位置到中心點的距離以及該位置在模板中所在的方向決定的,等距離的點具有相同權重,如圖l所示。這里選用最高輸出模板所對應的邊緣梯度值作為像元邊緣梯度強度。
2.2 Sobel算子細化邊緣
圖像邊緣包含圖像的大量信息,但模板計算的數值僅僅只是圖像對應的梯度圖像,邊緣出現于梯度較大位置,若想提取圖像邊緣必須設定閾值將其二值化。由一階梯度算子得到梯度圖像,一般邊緣較粗,若直接對其梯度圖像設定閾值進行二值化,很難找到合適的閾值.也不便于邊緣連接與邊緣特征提取等后期處理。因此在對圖像梯度圖像進行二值化前,必須細化所檢測的梯度邊緣。細化原理是基于經典Sobel算子定義的:
梯度方向為:
Sobel算子模板中的元素表示算式中相應像素的權重因子。Sobel算子是邊緣檢測算子,故其處理模板中各因子之和為零。另一方面,由于正因子和負因子之和分別為4和一4,在極端情況下處理結果可能溢出。因此,在實際使用時,Sobel算子通常采用已設定閾值進行二值化,即處理結果得到的是已二值化的邊緣圖。該結果將導致邊緣圖中幅值較小的邊緣丟失。為了克服這個缺陷,引入一個衰減因子Scale,用它去除計算結果,來消除數據的溢出,而無需二值化處理,而且其結果是無失真的灰階邊緣圖,從而保留所有邊緣數值同。加入擴展的模板后可得:
因子Scale取4,它也是歸一化因子,即兩個灰度層的階躍,交界處的處理結果就是其灰度差值。
灰度圖像細化處理步驟如下:①對灰度圖像作帶衰減因子的Sobel處理,得灰度邊緣圖。Sobel處理采用式(3);②對所得灰度邊緣圖再作帶衰減因子的Sobel處理;③灰度邊緣圖減去Sobel處理結果,再將與負值部分對應的邊緣點的值改為零,得到細化的邊緣圖。
3 多項式插值亞像素細分的精定位
運用Sobel細化算子改進的方向模板獲取邊緣點的梯度方向,可采用已知的邊緣點的梯度方向近似代替未知的亞像素點的梯度方向,并在該方向上進行二次多項式插值得到邊緣的亞像素位置。
評論