趙 徹,徐熙平
(長春理工大學光電工程學院,長春,130022)
本測量系統由平行光源、成像透鏡、CCD 相機、圖像采集卡和計算機處理系統組成,如圖1 所示。
圖像處理的主要目的是對待測工件進行輪廓的提取,大幅度的減少數據量,剔除那些被認為不相關的信息,保留圖像重要的結構屬性。通過邊緣檢測提取工件輪廓信息是測量工件幾何參數的基礎。
在實際測量的環境中,尤其在工業生產的條件下,圖像信號在傳輸過程中極易受到一些隨機噪聲的干擾,嚴重破壞圖像的質量,影響測量的精度。所以我們這里采用中值濾波來消除可能出現的隨機噪聲。中值濾波本質上是一種統計排序濾波器。對于原圖像中某點(i,j),中值濾波以該點為中心的鄰域內的所有像素的統計排序中值作為(i,j)點的響應。
本文選用Canny 邊緣檢測算子來進行圖片的輪廓提取。以下是實現過程
用高斯濾波器平滑圖像。
這里,利用一個省略系數的高斯函數H(x,y):

其中f(x,y)是圖像數據。


對梯度幅值進行非極大值抑制。
僅僅得到全局的梯度并不足以確定邊緣。為確定邊緣,必須保留局部梯度最大的點,而抑制非極大值,即將非局部極大值點置零以得到細化的邊緣。
在每一點上,鄰域的中心像素M 與沿著梯度線的兩個像素相比。如果M 的梯度值不比沿梯度線的兩個相鄰像素梯度值大,則令M=0。
用雙閾值算法檢測和連接邊緣。
使用兩個閾值T1 和T2(T1 在Visual C++ 6.0 平臺上用C++語言實現Canny 算子并對圖2 進行輪廓提取,得到圖2 所示的處理結果: 圖2 Canny 算子提取的芯片邊緣輪廓 可見芯片的邊緣清晰,完整,完全可以滿足后續測量的要求。 由于實驗對圖像中每一個像素點進行掃描來計算幾何參數,一般測量結果只具有像素級的精度。在CCD 攝像機分辨率一定的情況下需要對算法進行優化,實現圖像上的特征目標定位在亞像素級別。CCD 器件某一個像素的灰度值輸入可表示為: 令差分值最大的點的序號為0,值表示為f0,左右相鄰的四個點的序號分別表示-2、-1、1、2,相應的值表示為f-2、f-1、f1、f2,可求出五個像素輸出的灰度值如下所示: 可求得: a=0.1429f-2-0.0714f-1-0.1429f0-0.0714f1+0.1429f2 b=-0.2f-2-0.1f1+0.2f2 c=-0.0976f-2+0.3488f-1+0.4976f0+0.3488f1-0.0976f2 經驗證由該公式計算得到的亞像素精度的邊緣點,精確到0.1 個像素,相當于將CCD 的分辨率提高了10 倍,利用此處理方法可降低測量結果的誤差。 具體的測量結果如下表 由表1 可以看出, 測量精度在0.005mm 以內。 表1 實驗結果 [1] Y.Hara,etal,AutomatiC Inspection System for Printed Circuit Boards,IEEE [2] M.M.Landman,S.J.Roberton,A flexible industrial system for automated three—dimensional inspection,SPIE,Vol.728,1986,203-209.
3 實驗結果與分析




