楊雪榮 李光成



摘要:特征點的提取在一定的意義上可以理解為圖像的識別和定位,傳統的定位點提取方法有手動區域選擇法、自動圖像分割法、XLD模板法等,本文提出了一種新的定位點識別方法,即通過兩條線的交點形成定位點。經實際測試,證明這種方法在多種復雜的圖像環境中可以對定位點進行定位和識別,并得到較高的定位精度。實驗結果也表明該方法還可以應用到其他一些圖形物體的圖像識別中。
關鍵詞:Halcon 圖像處理 邊緣提取 自動光學檢測
中圖分類號:TP391.41 文獻標識碼:A 文章編號:1007-9416(2016)07-0086-02
點特征主要指明顯點,如角點、原點等。提取點特征的算子稱為興趣算子或有利算子,即運用某種算法從影像中提取我們所感興趣的即有利于某種目的的點,現在已提出了一系列算法各異、且具有不同特色的興趣算子,比較知名的有Moravec算子與Harris算子等。
1 基于幾何性質的識別方法
1.1 用dyn_threshold特征點圖像的局部閾值分割圖像
閾值分割就是將圖像分割為目標和背景,dyn_threshold根據像素所滿足的閾值條件來分割圖像。
使用dyn_threshold,可以提取對象的輪廓。提取的對象的大小是由低通濾波器的掩膜的大小和對象的邊緣幅度來決定的:選擇的掩膜尺寸越大,找到的區域越大。這里我們設為40。
1.2 特征區域的提取
通過觀察可以發現,我們想要得到的區域是做了connection連通性分析之后面積最大的區域,所以運用select_shape_std可以得到我們的目標區域。
隨著光照條件以及外界的各種因素的影響,通過以上方法得到的邊界區域可能不是一個整體,在select_shape_std中也得不到我們的目標區域,所以我們還要運用其他的Blob分析方法將其連為一個整體,本例中運用的是select_gray和閉運算。
1.3 檢測線的生成和邊界的提取
生成檢測線的目的是為了將以上步驟生成的開放區域變成一個封閉的區域/,利用fill_up對這個區域進行填充/,為了得到區域的邊界,必須對區域進行開運算以消除非ROI區域,然后用boundary算子就可以得到區域的邊界線。
1.4 計算重心和邊界點的提取
利用area_center算子計算上述步驟中的中心坐標,分別作垂直于R軸和C軸的兩條直線,務必保證兩條直線與上邊界和左邊界產生各產生一個交點,為下面以點為基礎膨脹出兩條邊界線做準備。
1.5 邊界線的提取
自定義一個2*3的矩形結構體,以上邊界點和左邊界點為基礎膨脹,膨脹一次完成與邊界進行取交集運算,依此類推,進行200次循環即可得到上邊和左邊兩條獨立的邊界線
1.6 優化邊界
相對于圖像image和區域Region,這些數據結構是像素精度的,在實際工業應用中,需要比像素分辨率更高的精度,這時就需要提取亞像素精度數據。提高邊界的精度,其過程如下:
(1)將區域轉化為XLD,其代碼如下:
gen_contour_region_xld(TempRegionInter1, Contours1, 'border')
(2) 對XLD進行平滑處理,其代碼如下:
smooth_contours_xld(Contours1,Contours1,45)
(3)將XLD轉化為區域,其代碼如下:
gen_region_contour_xld(Contours1,TempRegionInter1,'filled')
(4)對區域進行骨架化處理(它仍然是Region不是XLD),其代碼如下:
skeleton(TempRegionInter1, Skeleton1)
(5)將骨架轉化為XLD(此時是亞像素精度),其代碼如下:
gen_contours_skeleton_xld(Skeleton1, Contours1, 5, 'generalize1')
(6)將XLD擬合為一條直線,此時的精度最高,其代碼如下:
fit_line_contour_xld(Contours1, 'tukey', -1, 0, 5, 2, RowBegin1, ColBegin1, RowEnd1, ColEnd1, Nr, Nc, Dist)
(7)將擬合的直線表示出來,其代碼如下:
gen_region_line(Line1,RowBegin1, ColBegin1, RowEnd1, ColEnd1)
同理,也可將左邊界進行優化。
1.7 角點的提取
通過fit_line_contour_xld可以得到直線的起始坐標,上述已求出兩條直線的起始坐標,通過intersection_ll即可算出角點所在如圖1圖2所示。
2 實驗結果及分析
為了驗證本文算法的有效性,選擇2幅圖像按實驗流程進行實驗,圖像角點位置誤差、算法時間如表1所示。
表1說明本文的基于幾何性質的方法能夠很快計算出定位點的相對精確位置,如果在C或者其他更低級的語言環境中,程序執行的時間還將被縮短。相比Moravec和Harris算子的方法,我們提出的方法是可以在較短的找到角點,并且提供角點在圖像上的坐標如圖3圖4所示。
3 結語
提出了一種工業自動檢測中定位點的方法,它是利用兩條直線形成一個交點的原理定位點的位置,在定位點的過程中,噪聲干擾對定位精度的影響相當大,所以在局部閾值分割之前的濾波操作非常重要,通過該算法處理絕大部分噪聲能被成功移除,即使在定位點圖像二值化過程中其邊緣出現一定程度噪聲干擾的情況下,定位點也能夠被相當準確的快速定位。以上的實驗流程切實可行,且實驗結果達到了預期的要求,由此證明本文所構建的特征點提取具有較強的實用價值。
參考文獻
[1]盧泉奇,苗同升.基于Halcon的機械手視覺抓取應用研究[M].光學儀器,2014.
[2]陳克勇,王輔明.工業光學檢測中定位點的識別[J].計算機應用,2007.
[3]蔡自興.機器人學[M].北京:清華大學出版社,2000.
[4]李洪海,王敬東.攝像機標定技術研究[J].光學儀器,2007.
[5]劉源泂,孔建益,王興東 等.雙目立體視覺系統的非線性攝像機標定技術[J].計算機應用研究,2011,28(9):3398-3400.