在使用光纖端面檢測儀對光纖端面進行圖像采集的時候,由于光纖端面每次出現(xiàn)在視野范圍中的位置都有所不同,所以首先要對光纖端面纖芯的位置進行定位才能對其進行一系列的檢測。要定位纖芯的位置,首先需要將采集到的圖像二值化。因為通過光纖端面檢測儀采集得到的初始圖像為32位的,而在VBAI中對圖像分析處理的函數(shù)模塊基本上都是不支持32位圖的,所以只有把32位圖轉(zhuǎn)化成二值圖像,才能對其進行一系列精確的分析。使用VBAI的視覺助手(VisionAssistant)函數(shù)模塊對初始圖像進行圖像處理,通過抽取色彩值(ExtractHSL)的子函數(shù)即可得到灰度8位圖,然后使用閾值法將圖像二值化。
閾值法是一種簡單而且有效的圖像分割方法,此方法是用一個或幾個閾值將圖像的像素灰度級分為幾個級別,屬于一個級別的像素點被認為是同一類物體。需要注意的是,在光纖端面檢測的過程中,由于包層可能會和包層外的臟污屬于同一個灰度級,所以在對包層外的臟污檢測的時候是不能同時對包層上的臟污進行檢測的,需要將包層屏蔽以后再檢測。
在本系統(tǒng)中,設(shè)F(x,y)表示對圖像二值化的輸出,其像素灰度級范圍為[a,b],對同一類型的缺陷檢測時只需要設(shè)定一個a和b之間的閾值TH,把圖像的像素分成大于TH的像素群(缺陷)和小于TH的像素群(背景)兩部分。即:
圖像二值化將缺陷像素點的灰度值設(shè)為0,背景像素點的灰度值設(shè)為1。在VBAI的視覺助手函數(shù)模塊中就有設(shè)置閾值(Threshold)的函數(shù)子模塊,調(diào)用的時候只需要在閾值直方圖上根據(jù)雙峰法找到波峰與波谷,并手動調(diào)整閾值的大小,使其能將缺陷與背景區(qū)分開來即可,如圖2所示。
圖2原始圖像及其閾值直方圖
2.1纖芯的定位
本文定位光纖纖芯所使用的是方法是先找到光纖的整個包層,由于光纖包層的形狀是一個圓,而這個圓的圓心就是纖芯的中心了。光纖端面存在較大程度的污染的話,如果只是設(shè)置一定的閾值將圖像二值化,得到的二值圖像除了光纖包層外還可能會有很多臟污,這樣就會對光纖包層的定位產(chǎn)生很大的影響。所以二值化圖像后還需要使用視覺助手里的一些子函數(shù)模塊對圖像進行一些形態(tài)學的處理,使用移除小顆粒(RemoveSmallObjeets)和移除大顆粒(RemoveLargeObjects)這兩種函數(shù)子模塊,調(diào)整迭代次數(shù)的大小,把比光纖包層小和比光纖包層大的顆粒都濾掉,從而除去對光纖包層定位的干擾,使得到的二值圖像里只有光纖包層的圖像,如圖3所示。
圖3將原始圖像處理成只有光纖包層的二值圖像
圖4不同位置纖芯的定位
得到光纖包層的二值圖像后,利用VBAI中尋找圓邊緣(FindCircularEdge)以及建立坐標系(SetCoordinateSystem)的函數(shù)模塊,即能準確地定位光纖纖芯的位置。尋找圓邊緣是為了尋找光纖包層圓的邊緣,從而尋找到光纖包層圓的圓心,這個圓心也是纖芯圓的圓心,然后以這個圓心為坐標系原點建立坐標系。在VBAI中,建立坐標系這個函數(shù)的功能是定位特征,它能根據(jù)尋找到的包層圓自動定位圓心,即使包層在圖像中的位置改變,坐標系原點也能準確地定位在包層圓的圓心上,而包層圓的圓心就是纖芯圓的圓心。由圖4可見,坐標系的原點可以很精確地定位在位置不同的纖芯圓的圓心上,即使是在不規(guī)則的包層面上。
2.2檢測區(qū)域的劃分