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