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