用單個(gè)相機(jī)在指定平面上的尺寸測(cè)量
在HALCON中很容易從圖像中獲得在世界坐標(biāo)中的非變形測(cè)量。一般情況下,如果相同的物體在同一時(shí)刻,在不同的空間位置下,用相機(jī)拍攝兩個(gè)或更多的圖像,才能完成這樣的測(cè)量任務(wù)。這就是所謂的立體視覺方法。
在工業(yè)檢測(cè)中,我們通常僅僅有一個(gè)可用的相機(jī),時(shí)間的約束不允許我們?nèi)ミ\(yùn)用在立體圖像上去找對(duì)應(yīng)點(diǎn)這樣昂貴的處理(所謂的立體匹配處理)。
然而,對(duì)于通過遠(yuǎn)心鏡頭和位于已知平面的物體獲取的物體,其是有可能獲得在世界坐標(biāo)系統(tǒng)的測(cè)量的。例如,對(duì)于針孔相機(jī),在一個(gè)拼接線上。這兩個(gè)任務(wù)可以通過一條光線與平面的相互作用來很好的解決。
通過這樣,是有可能完成對(duì)在一個(gè)平面的物體測(cè)量,甚至當(dāng)平面相對(duì)于光軸是傾斜的時(shí)候。僅僅的先決條件是相機(jī)已經(jīng)被標(biāo)定。在HALCON中,標(biāo)定過程是很容易。
最容易的方法去執(zhí)行標(biāo)定就是利用HALCON的標(biāo)準(zhǔn)標(biāo)準(zhǔn)版。你僅僅需要擦劑幾張標(biāo)定板的圖像(如圖1所示),這里,在圖像上,標(biāo)定板已經(jīng)被直接放在了測(cè)量平面上。
圖1:?HALCON標(biāo)定板
第一個(gè)例子
下面的程序展示了去標(biāo)定相機(jī),并利用標(biāo)定結(jié)果去轉(zhuǎn)換測(cè)量到3D世界坐標(biāo)。
首先,我們制定標(biāo)定的一般參數(shù)。
然后,標(biāo)定板的圖像被讀取。借助算子find_calib_object,標(biāo)定板被搜索,標(biāo)志點(diǎn)的輪廓和中心被提取到,標(biāo)定板的位姿被估計(jì)到。獲取的信息被存儲(chǔ)在標(biāo)定的數(shù)據(jù)模型中。
現(xiàn)在,我們用算子calibrate_camera來執(zhí)行實(shí)際的標(biāo)定。
隨后,我們可以訪問標(biāo)定結(jié)果,例如相機(jī)內(nèi)參和在參考圖像下標(biāo)定板的位姿。
位姿被用來作為相機(jī)外參,例如在相機(jī)坐標(biāo)中3D世界坐標(biāo)系統(tǒng)的位姿。在例子中,世界坐標(biāo)系統(tǒng)被定位在尺子上(見圖2).為了抵消標(biāo)定板的厚度,位姿通過一個(gè)對(duì)應(yīng)的值而移動(dòng)。
現(xiàn)在,我們執(zhí)行了測(cè)量。為此,我們通過標(biāo)定板,獲得了一種沒有遮擋尺子的額外圖像:
借助相機(jī)的內(nèi)參和外參,通過算子image_points_to_world_plane就可以將測(cè)量結(jié)果轉(zhuǎn)換到3D世界坐標(biāo)。
圖2:在標(biāo)定以后,尺子上的標(biāo)記點(diǎn)被測(cè)量,借助標(biāo)定結(jié)果,測(cè)量被轉(zhuǎn)化到3D世界坐標(biāo)中
責(zé)任編輯:YYX