《HALCON編程及工程應(yīng)用》課件第9章 HALCON測(cè)量_第1頁
《HALCON編程及工程應(yīng)用》課件第9章 HALCON測(cè)量_第2頁
《HALCON編程及工程應(yīng)用》課件第9章 HALCON測(cè)量_第3頁
《HALCON編程及工程應(yīng)用》課件第9章 HALCON測(cè)量_第4頁
《HALCON編程及工程應(yīng)用》課件第9章 HALCON測(cè)量_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第9章HALCON測(cè)量9.1機(jī)器視覺與測(cè)量9.2HALCON一維測(cè)量9.2.1一維測(cè)量過程9.2.2模糊測(cè)量9.2.3一維測(cè)量典型相關(guān)算子9.3HALCON二維測(cè)量9.3.1區(qū)域處理9.3.2輪廓處理9.3.3幾何運(yùn)算9.4HALCON三維測(cè)量9.4.1雙目立體視覺測(cè)量9.4.2激光三角測(cè)量9.5HALCON測(cè)量助手HALCON編程基礎(chǔ)與工程應(yīng)用9.1機(jī)器視覺與測(cè)量

基于機(jī)器視覺的測(cè)量原理:

基于機(jī)器視覺的檢測(cè)過程:對(duì)感興趣對(duì)象或區(qū)域進(jìn)行成像,然后根據(jù)其圖像信息用圖像處理軟件進(jìn)行處理,根據(jù)處理結(jié)果自動(dòng)判斷檢測(cè)對(duì)象的位置、尺寸、外觀信息,并依據(jù)人為預(yù)先設(shè)定的標(biāo)準(zhǔn)進(jìn)行合格與否的判斷,輸出其判斷信息給執(zhí)行機(jī)構(gòu)。機(jī)器視覺檢測(cè)系統(tǒng)采用CCD相機(jī)或CMOS相機(jī)將被檢測(cè)的對(duì)象信息轉(zhuǎn)換成圖像信號(hào),傳送給專用的圖像處理系統(tǒng),根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變成數(shù)字化信號(hào),圖像處理系統(tǒng)再對(duì)這些信號(hào)進(jìn)行各種運(yùn)算來抽取對(duì)象的特征,如面積、數(shù)量、位置、長度,再根據(jù)預(yù)設(shè)的值和其他條件輸出結(jié)果,包括尺寸、角度、個(gè)數(shù)、合格/不合格、有/無等,實(shí)現(xiàn)自動(dòng)識(shí)別功能。機(jī)器視覺在測(cè)量領(lǐng)域的優(yōu)勢(shì):

機(jī)器視覺檢測(cè)系統(tǒng)的優(yōu)勢(shì)主要體現(xiàn)在非接觸測(cè)量、能夠長時(shí)間穩(wěn)定工作等。非接觸測(cè)量可以避免在測(cè)量過程中對(duì)被測(cè)對(duì)象的損壞,基于機(jī)器視覺的測(cè)量系統(tǒng)可以同時(shí)進(jìn)行多項(xiàng)測(cè)量,實(shí)現(xiàn)測(cè)量工作的快速完成,適用于在線測(cè)量;而對(duì)于微小尺寸對(duì)象的測(cè)量也是機(jī)器視覺系統(tǒng)的長處,它可以利用高倍鏡頭放大被測(cè)對(duì)象,使得測(cè)量精度達(dá)到微米以上。相比于人工測(cè)量,機(jī)器視覺測(cè)量不僅能保證測(cè)量精度,還能保持測(cè)量的重復(fù)性和客觀性,能夠長時(shí)間穩(wěn)定工作,可以節(jié)省大量勞動(dòng)力資源。事實(shí)表明,基于機(jī)器視覺技術(shù)的圖像測(cè)量具有良好的連續(xù)性和高精度,大大提高了工業(yè)在線測(cè)量的實(shí)時(shí)性和準(zhǔn)確性,同時(shí)生產(chǎn)效率和產(chǎn)品質(zhì)量控制也得到明顯提升。HALCON編程基礎(chǔ)與工程應(yīng)用9.2HALCON一維測(cè)量

一維測(cè)量過程:構(gòu)造測(cè)量對(duì)象——建立測(cè)量區(qū)域創(chuàng)建一個(gè)矩形或扇環(huán)形的ROI(測(cè)量區(qū)域),然后作等距的投影線,等距投影線與測(cè)量線或測(cè)量?。ㄒ卜Q為輪廓線)垂直,長度等于ROI的寬度。提取邊緣(對(duì))輪廓線計(jì)算——求取投影線的平均灰度值輪廓線平滑——消除噪聲求輪廓線一階導(dǎo)數(shù)通過局部極值找到邊緣HALCON編程基礎(chǔ)與工程應(yīng)用9.2HALCON一維測(cè)量

模糊測(cè)量:

模糊測(cè)量是對(duì)標(biāo)準(zhǔn)測(cè)量的一種擴(kuò)展,并不是意味著測(cè)量是“模糊的”,而是用模糊隸屬函數(shù)來控制邊緣的選擇。所謂的模糊隸屬函數(shù),就是將邊緣的特征值轉(zhuǎn)化為隸屬度值,基于這些隸屬值做出是否選擇邊緣的決定,即當(dāng)隸屬度值大于你設(shè)定的模糊閾值(FuzzyThresh)時(shí),邊緣就會(huì)被選中,反之則反。舉個(gè)簡單的例子方便理解:比如在測(cè)量開關(guān)引腳之間的寬度和距離時(shí),引腳可能會(huì)有反射(左圖),直接用一維測(cè)量會(huì)產(chǎn)生錯(cuò)誤的結(jié)果(中圖),這時(shí)將“大頭針的寬度大約為9像素寬”這個(gè)信息轉(zhuǎn)化為模糊隸屬函數(shù)。比如對(duì)于預(yù)期的寬度9像素,對(duì)應(yīng)的隸屬度值為1;對(duì)于與預(yù)期的大小相差3個(gè)像素以上,則隸屬度值為0,中間的值采用線性插值,即寬度為da’yu8.像素的隸屬度值就為0.67。當(dāng)你設(shè)置的閾值為0.5時(shí),那寬度為7.5-10.5像素之間的邊緣對(duì)才會(huì)被選中。通過這樣的模糊測(cè)量則可以正確測(cè)量引腳的寬度(右圖)。HALCON編程基礎(chǔ)與工程應(yīng)用9.2HALCON一維測(cè)量

模糊測(cè)量的主要步驟為:(1)使用算子create_funct_1d_pairs創(chuàng)建模糊函數(shù);(2)使用算子set_fuzzy_measure或set_fuzzy_measure_norm_pair為模糊集指定模糊隸屬函數(shù)。注意:可以重復(fù)調(diào)用算子定義多個(gè)模糊集,但是不能對(duì)同一模糊集指定多個(gè)模糊隸屬函數(shù),指定第二個(gè)模糊函數(shù)意味著放棄第一個(gè)定義的模糊函數(shù)并將其替換為第二個(gè)模糊函數(shù)。之前為模糊集指定的模糊函數(shù)可以通過reset_fuzzy_measure刪除。(3)使用算子fuzzy_measure_pos、fuzzy_measure_pairs或fuzzy_measure_pairing提取模糊測(cè)量的邊緣對(duì)。

一維測(cè)量典型相關(guān)算子gen_measure_rectangle2:通過一個(gè)矩形創(chuàng)建一個(gè)線性測(cè)量對(duì)象gen_measure_arc:通過一個(gè)圓弧創(chuàng)建一個(gè)扇環(huán)測(cè)量對(duì)象measure_pos:提取測(cè)量區(qū)域內(nèi)垂直于矩形或者扇環(huán)的邊緣measure_pairs:提取測(cè)量區(qū)域內(nèi)垂直于矩形或者扇環(huán)的邊緣對(duì)measure_thresh:提取測(cè)量區(qū)域內(nèi)輪廓線上具有指定灰度值的點(diǎn)measure_projection:提取測(cè)量區(qū)域內(nèi)投影線上的一維灰度值分布HALCON編程基礎(chǔ)與工程應(yīng)用9.2HALCON一維測(cè)量

close_measure:關(guān)閉測(cè)量對(duì)象(測(cè)量句柄)close_all_measures:關(guān)閉所有測(cè)量對(duì)象(測(cè)量句柄)write_measure:保存測(cè)量對(duì)象到文件;測(cè)量對(duì)象文件后綴是.msrread_measure:從文件中讀取測(cè)量對(duì)象translate_measure:移動(dòng)測(cè)量對(duì)象到新的參考點(diǎn)create_funct_1d_pairs:通過一個(gè)二維數(shù)組創(chuàng)建一個(gè)離散一維函數(shù),即生成模糊函數(shù)set_fuzzy_measure:指定一個(gè)模糊函數(shù)set_fuzzy_measure_norm_pair:設(shè)置歸一化的模糊隸屬度函數(shù)fuzzy_measure_pos:提取垂直于矩形或扇環(huán)的直邊,與measure_pos不同的是,它使用模糊函數(shù)來判斷和選擇邊緣。fuzzy_measure_pairs:提取垂直于矩形或扇環(huán)的直邊對(duì)。與measure_pairs不同的是,它使用模糊函數(shù)來判斷和選擇邊緣對(duì)fuzzy_measure_pairing:提取垂直于矩形或扇環(huán)的直邊對(duì)。提取算法與fuzzy_measure_pairs相同,但其可以使用參數(shù)Pairing提取彼此相交或者包含的邊緣對(duì)。reset_fuzzy_measure:重置一個(gè)模糊函數(shù)HALCON編程基礎(chǔ)與工程應(yīng)用9.3HALCON二維測(cè)量

區(qū)域處理

區(qū)域處理主要指的就是Blob分析,其只能提取像素精度的邊緣,主要包括四個(gè)步驟:(1)預(yù)處理;(2)圖像區(qū)域的分割;(3)區(qū)域的處理;(4)特征的提取1.預(yù)處理常用算子圖像:mean_image和binomial_filter:消除噪聲;median_image:抑制小斑點(diǎn)或細(xì)線;gray_opening_shape和gray_closing_shape:灰度值的開運(yùn)算和閉運(yùn)算;smooth_image:圖像平滑;anisotropic_diffusion:保留邊緣的圖像平滑;sub_image:圖像灰度值的相減。區(qū)域:fill_up:填充;opening_circle和opening_rectangle1:開運(yùn)算,抑制噪聲;closing_circle和closing_rectangle1:閉運(yùn)算,填充間隙。HALCON編程基礎(chǔ)與工程應(yīng)用9.3HALCON二維測(cè)量

2.區(qū)域分割算子threshold;binary_threshold;auto_threshold;dyn_threshold;fast_threshold和local_threshold:分割出感興趣的區(qū)域;gray_histo;histo_to_thresh和intensity:獲得圖片的灰度值;connection:計(jì)算連通區(qū)域;watershed:分水嶺算子,根據(jù)拓?fù)浣Y(jié)構(gòu)來分割圖片;regiongrowing:區(qū)域生長算子,按照強(qiáng)度分割圖片。3.區(qū)域處理算子select_shape;select_gray:選擇有特定特征的區(qū)域;dilation_rectangle1:擴(kuò)張有矩形元素的區(qū)域;union1;Union2:合并多個(gè)區(qū)域;Intersection:獲得兩區(qū)域的交集;difference:計(jì)算兩個(gè)區(qū)域的不同;complement:計(jì)算區(qū)域的補(bǔ)集;shape_trans:擬合區(qū)域;skeleton:計(jì)算區(qū)域的框架。HALCON編程基礎(chǔ)與工程應(yīng)用9.3HALCON二維測(cè)量

4.特征提取算子area_center:得到區(qū)域的面積和中心坐標(biāo);smallest_circle:確定包圍區(qū)域的最小封閉圓;smallest_rectangle1:計(jì)算平行坐標(biāo)軸的最小外接矩形參數(shù);smallest_rectangle2:計(jì)算區(qū)域任意方向最小外接矩形參數(shù);inner_rectangle1:計(jì)算平行于坐標(biāo)軸的最大內(nèi)接矩形;inner_circle:計(jì)算最大內(nèi)接圓;diameter_region:計(jì)算區(qū)域邊界的最大距離;orientation_region:計(jì)算區(qū)域方向;

輪廓處理

輪廓處理適用于高精度測(cè)量,可提取像素精度邊緣或者亞像素精度的邊緣,其主要包括5個(gè)步驟:(1)創(chuàng)建輪廓;(2)選擇輪廓;(3)分割輪廓;(4)利用已知形狀擬合輪廓段;(5)提取未知輪廓的特征。1.創(chuàng)建輪廓輪廓處理從輪廓的創(chuàng)建開始,獲取輪廓的常用方法是提取邊緣。邊緣是一張圖片中亮暗區(qū)域的過渡位置,它可以由圖片梯度計(jì)算得出。HALCON編程基礎(chǔ)與工程應(yīng)用9.3HALCON二維測(cè)量

像素精度的邊緣和線條:提取像素精度的邊緣可以使用邊緣濾波器。邊緣濾波器生成的邊緣圖像,通過閾值算子選取具有給定的最小邊緣幅度的像素提取邊緣區(qū)域,再對(duì)得到的邊緣區(qū)域進(jìn)行細(xì)化,就可以得到一個(gè)像素精度的邊緣。常見的像素精度邊緣濾波器是運(yùn)算速度較快的Sobel_amp和速度較慢但已經(jīng)包括閾值化和細(xì)化的edges_image,而且其結(jié)果比Sobel_amp更精確。edges_image及其在彩色圖像中對(duì)應(yīng)的算子edges_color的參數(shù)Filter可以設(shè)置為“Sobel_fast”,它的速度也很快,但其只適合噪聲或紋理小,邊緣銳利的圖像。除了邊緣之外,還可以提取具有一定的寬度的細(xì)線。一般采用濾波算子bandpass_image,其結(jié)合了閾值和細(xì)化。HALCON編程基礎(chǔ)與工程應(yīng)用9.3HALCON二維測(cè)量

亞像素精度的邊緣和線條:亞像素精度邊緣是比像素精度邊緣精度更高,即所謂的XLD輪廓。提取亞像素精度邊緣的常用算子有:edges_sub_pix:用于一般邊緣提??;edges_color_sub_pix:用于提取彩色圖像中的邊緣;zero_crossing_sub_pix:以亞像素精度提取圖像中的零交叉點(diǎn)提取亞像素精度細(xì)線(有一定寬度)的常用算子有:lines_gauss:一般的線提??;lines_facet:用facet模型進(jìn)行線提取;lines_color:彩色圖像中的線提??;提取XLD輪廓的另一種快速方法是亞像素精度閾值分割,即算子thresholdold_sub_pix,其可以應(yīng)用于整個(gè)圖像。HALCON編程基礎(chǔ)與工程應(yīng)用2.選擇輪廓9.3HALCON二維測(cè)量

根據(jù)特征選擇輪廓主要算子:select_shape_xld;select_contures_xld;select_xld_point通過輪廓合并將接近的輪廓段合并成一個(gè)XLD主要算子:union_collinear_contours_xld;union_cocircular_contours_xld;union_adjacent_contours_xld;union_cotangential_contours_xld集合論算子選擇輪廓主要算子:intersection_closed_contours_xld(intersection_closed_polygons_xld);difference_closed_contours_xld(difference_closed_polygons_xld);symm_difference_closed_contours_xld(symm_difference_closed_polygons_xld);union2_closed_contours_xld(union2_closed_polygons_xld)簡化輪廓主要算子:shape_trans_xld:可以將輪廓轉(zhuǎn)換為最小的封閉圓、具有相同參數(shù)(長短軸之比和面積)的橢圓、凸區(qū)域或最小的封閉矩形(平行于坐標(biāo)軸或具有任意方向)HALCON編程基礎(chǔ)與工程應(yīng)用9.3HALCON二維測(cè)量

3.分割輪廓所獲得的輪廓通常由或多或少復(fù)雜的形狀組成。通過算子segment_contours_xld將輪廓分割成不太復(fù)雜的輪廓段(如直線、圓等)可以更容易地分析輪廓。4.利用已知形狀擬合輪廓來提取特征

將形狀基元擬合到輪廓或輪廓段以獲得它們特定的形狀參數(shù),利用擬合得到的參數(shù)可以生成相應(yīng)的輪廓進(jìn)行可視化或進(jìn)一步處理,主要的算子有:HALCON編程基礎(chǔ)與工程應(yīng)用fit_line_contour_xld:擬合線段fit_circle_contour_xld:擬合圓fit_ellipse_contour_xld:擬合橢圓fit_rectangle2_contour_xld:擬合矩形gen_contour_polygon_xld:生成線段gen_circle_contour_xld:生成圓gen_ellipse_contour_xld:生成橢圓gen_rectangle2_contour_xld:生成矩形9.3HALCON二維測(cè)量

HALCON編程基礎(chǔ)與工程應(yīng)用5.提取未知輪廓的特征9.3HALCON二維測(cè)量

如果不能用已知的形狀基元來描述,HALCON提供了一些算子計(jì)算輪廓的一般特征:area_center_xld:求XLD包圍的區(qū)域的面積和重心以及邊界點(diǎn)的排列順序diameter_xld:計(jì)算XLD上距離最遠(yuǎn)的兩個(gè)點(diǎn)的坐標(biāo)及其距離elliptic_axis_xld:獲得XLD的等效橢圓參數(shù)length_xld:XLD的長度orientation_xld:XLD的方向smallest_circle_xld:獲得XLD的最小封閉圓的圓心和半徑smallest_rectangle1_xld:獲得XLD的最小包圍矩形(與坐標(biāo)軸平行)的左上與右下角的坐標(biāo)smallest_rectangle2_xld:獲得XLD的最小外接矩形(任意方向)的參數(shù)

幾何運(yùn)算

HALCON為幾何運(yùn)算提供了一系列算子,用于計(jì)算點(diǎn)、線、線段、輪廓或區(qū)域等元素之間的關(guān)系。HALCON編程基礎(chǔ)與工程應(yīng)用HALCON編程基礎(chǔ)與工程應(yīng)用點(diǎn)線線段輪廓區(qū)域點(diǎn)distance_ppdistance_pldistance_psdistance_pcdistance_pr線distance_pl–distance_sldistance_lcdistance_lr線段distance_psdistance_sldistance_ssdistance_scdistance_sr輪廓distance_pcdistance_lcdistance_scdistance_ccdistance_cc_min–區(qū)域distance_prdistance_lrdistance_sr–distance_rr_mindistance_rr_min_dilangle_ll:兩條直線之間的夾角angle_lx:直線與垂直軸的夾角get_points_ellipse:橢圓上對(duì)應(yīng)特定角度的點(diǎn)intersection_lines:兩條直線的交點(diǎn)projection_pl:點(diǎn)在直線上的投影HALCON編程基礎(chǔ)與工程應(yīng)用9.4HALCON三維測(cè)量

雙目立體視覺測(cè)量

雙目立體視覺是機(jī)器視覺的一種重要形式,它是基于視差原理并由多幅圖像獲取物體三維幾何信息的方法。雙目立體視覺系統(tǒng)一般由雙相機(jī)從不同角度同時(shí)獲得被測(cè)物體的兩幅數(shù)字圖像,或由單相機(jī)在不同時(shí)刻獲得被測(cè)物的兩幅數(shù)字圖像,并基于視差原理恢復(fù)出物體的三維幾何信息,重建物體三維輪廓及位置。1.雙目立體視覺測(cè)量的原理兩個(gè)具有相同內(nèi)參的相機(jī)平行放置,且連接兩臺(tái)相機(jī)光學(xué)中心的直線與第一臺(tái)相機(jī)的x軸重合。然后將點(diǎn)投影到兩臺(tái)相機(jī)的成像平面中,得到P點(diǎn)在兩個(gè)圖像平面坐標(biāo)中的坐標(biāo),即共軛點(diǎn):共軛點(diǎn)在這兩個(gè)成像平面內(nèi)的位置差稱為視差d:給定相機(jī)參數(shù)和兩個(gè)共軛點(diǎn)的圖像坐標(biāo),則P的坐標(biāo),即其與立體相機(jī)系統(tǒng)的距離為9.4HALCON三維測(cè)量

2.雙目立體視覺的系統(tǒng)結(jié)構(gòu)和精度分析雙目立體視覺的一般結(jié)構(gòu)為交叉擺放的兩個(gè)相機(jī)從不同角度觀測(cè)同一物體。各種雙目立體視覺系統(tǒng)的結(jié)構(gòu)各有優(yōu)缺點(diǎn),這些結(jié)構(gòu)適用于不同的應(yīng)用場合。對(duì)要求大測(cè)量范圍和較高測(cè)量精度的場合,采用基于雙相機(jī)的雙目立體視覺系統(tǒng)比較合適;對(duì)測(cè)量范圍要求比較小,對(duì)視覺系統(tǒng)體積和質(zhì)量要求嚴(yán)格,需要高速實(shí)時(shí)測(cè)量對(duì)象,基于光學(xué)成像的單相機(jī)雙目立體視覺系統(tǒng)是最佳選擇。雙目立體視覺系統(tǒng)的安裝方法影響測(cè)量結(jié)果的精度。測(cè)量的精度可由下式得出:HALCON編程基礎(chǔ)與工程應(yīng)用

上式中表示測(cè)量得出的被測(cè)點(diǎn)與雙目立體視覺系統(tǒng)之間距離的精度,z指被測(cè)點(diǎn)與雙目立體視覺系統(tǒng)的絕對(duì)距離,f指相機(jī)的焦距,b表示雙目立體視覺系統(tǒng)的基線距,表示被測(cè)點(diǎn)視差精度。為了得到更高的精度,應(yīng)使相機(jī)的焦距以及基線長度增大,同時(shí)應(yīng)該使被測(cè)物體盡可能的靠近立體視覺系統(tǒng)。另外這個(gè)精度和視差的精度有直接的關(guān)系。如果b和z之間的比值過大,立體圖像對(duì)之間的交迭區(qū)域?qū)⒎浅P。@樣就不能夠得到足夠的物體表面信息。b/z可以取的最大值取決于物體的表面特征。一般情況下,如果物體高度變化不明顯,b/z可以取的大一些;如果物體表面高度變化明顯,則b/z的值要小一些。無論在任何情況下,要確保立體圖像對(duì)之間的交迭區(qū)域足夠大并且兩個(gè)相機(jī)應(yīng)該大約對(duì)齊,也就是說每個(gè)相機(jī)繞光軸旋轉(zhuǎn)的角度不能太大。3.雙目立體視覺的標(biāo)定

為了進(jìn)行雙目立體視覺系統(tǒng)的標(biāo)定,需要得到空間點(diǎn)的三維坐標(biāo)以及該點(diǎn)在左右兩幅圖像中坐標(biāo)的對(duì)應(yīng)關(guān)系,另外還需要給定兩個(gè)相機(jī)的初始參數(shù)。拍攝標(biāo)定板圖像時(shí),要保證標(biāo)定板在左右兩個(gè)相機(jī)中都能夠完整成像。如果使用HALCON標(biāo)準(zhǔn)標(biāo)定板,首先可以通過算子find_caltab在標(biāo)定板圖像中分離出標(biāo)定板區(qū)域,然后利用算子find_marks_and_pose,該算子通過亞像素閾值、亞像素邊緣提取、圓心確定等一系列操作,計(jì)算標(biāo)定板上每個(gè)點(diǎn)的圖像坐標(biāo)以及標(biāo)定板與相機(jī)之間大約的位姿關(guān)系,即相機(jī)的外參初始值。

如果使用自定義的標(biāo)定板,可以使用HALCON中的圖像濾波、亞像素邊緣及線提取、亞像素輪廓處理等基本算子求取標(biāo)志點(diǎn)的坐標(biāo)并估算相機(jī)的外參初始值。9.4HALCON三維測(cè)量

HALCON編程基礎(chǔ)與工程應(yīng)用HALCON編程基礎(chǔ)與工程應(yīng)用9.4HALCON三維測(cè)量

獲得標(biāo)志點(diǎn)相應(yīng)的坐標(biāo)以及相機(jī)的初始參數(shù)后,通過調(diào)用算子binocular_calibration來確定兩個(gè)相機(jī)的內(nèi)參、外參以及兩個(gè)相機(jī)之間的相對(duì)位姿關(guān)系。算子:find_caltab:分割圖像中的標(biāo)準(zhǔn)標(biāo)定板區(qū)域find_marks_and_pose:抽取標(biāo)定點(diǎn)并計(jì)算相機(jī)的內(nèi)參。輸出MARKS坐標(biāo)數(shù)組,以及估算的相機(jī)外參。binocular_calibration:計(jì)算雙目立體視覺系統(tǒng)的所有參數(shù)4.校正立體圖像對(duì)

為了能夠更精確地進(jìn)行匹配,提高運(yùn)算的效率,在獲得相機(jī)的內(nèi)外參后首先對(duì)立體圖像對(duì)進(jìn)行校正。校正的過程其實(shí)就是將圖像投影到一個(gè)公共的圖像平面上,這個(gè)公共的圖像平面方向由雙目立體視覺系統(tǒng)基線與兩個(gè)原始圖像平面交線的叉集確定。HALCON中將標(biāo)定過程中獲得的相機(jī)內(nèi)參以及兩個(gè)相機(jī)相對(duì)位姿關(guān)系作為參數(shù)傳遞給算子gen_binocular_rectification_map,再將獲得的兩個(gè)圖像的映射圖傳遞給算子map_image,即可得到校正后的兩幅圖像,并可獲得校正后虛擬立體視覺系統(tǒng)中兩個(gè)相機(jī)的內(nèi)參和外參。算子:gen_binocular_rectification_map:產(chǎn)生變換映射,該映射描述左右兩相機(jī)的圖像到圖像校正后的基平面之間的映射map_image:校正圖像HALCON編程基礎(chǔ)與工程應(yīng)用9.4HALCON三維測(cè)量

5.獲得圖像中三維信息

為了得到圖像中某點(diǎn)的三維信息,需要在另一幅圖像中找到該點(diǎn)的對(duì)應(yīng)點(diǎn)坐標(biāo)。因此想獲得物體的深度信息,首先需要對(duì)校正后的立體圖像對(duì)進(jìn)行匹配。由于經(jīng)過校正后,兩幅圖像中的對(duì)應(yīng)點(diǎn)在圖像的同一行中,因此在匹配時(shí)只需要在相應(yīng)的行中尋找匹配點(diǎn)。為了得到更佳的匹配結(jié)果,如果被測(cè)物體表面沒有明顯的特征信息,則需要測(cè)量時(shí)在物體表面增加特征點(diǎn)。另外要避免被測(cè)物體上有重復(fù)圖案在同一行中。將校正后的圖像以及虛擬立體視覺系統(tǒng)中的相機(jī)內(nèi)外參數(shù)傳遞給binocular_disparity,這時(shí)可以設(shè)置匹配窗大小、相似度計(jì)算方式等參數(shù),在匹配中使用圖像金字塔可提高匹配速度,并且可以自我檢測(cè)匹配結(jié)果的正確性。算子返回一個(gè)視差圖(物體表面三維信息的表示)和一個(gè)匹配分值圖(表示匹配結(jié)果的準(zhǔn)確程度)。算子binocular_distance與binocular_disparity類似,只不過返回一個(gè)深度圖(物體表面在第一個(gè)相機(jī)坐標(biāo)系中的深度信息)和一個(gè)匹配分值圖。得到視差圖之后,可以從中得到點(diǎn)的x,y,z坐標(biāo),可以使用算子disparity_to_point_3d和disparity_image_to_xyz。如果想知道立體視覺系統(tǒng)中兩個(gè)給定點(diǎn)的距離,可以從視差圖確定相應(yīng)的視差并將它們轉(zhuǎn)換為距離,使用算子disparity_to_distance。算子:binocular_disparity:基于相關(guān)性的方法計(jì)算得到視差圖和匹配分值圖binocular_distance:確定深度圖和匹配分值圖disparity_to_point_3d:在經(jīng)過校正的立體系統(tǒng)中,將圖像點(diǎn)及其視差轉(zhuǎn)換為3D點(diǎn)HALCON編程基礎(chǔ)與工程應(yīng)用9.4HALCON三維測(cè)量

激光三角測(cè)量1.激光三角測(cè)量的原理

用Sheet-of-light技術(shù)進(jìn)行激光三角測(cè)量的基本原理是將由激光線投影儀產(chǎn)生的細(xì)長的發(fā)光直線投射到待重建的物體的表面上,然后用相機(jī)對(duì)投射的線進(jìn)行成像。激光線的投影建立了一個(gè)光平面。相機(jī)的光軸和光平面形成角度,稱為三角測(cè)量角。激光線和相機(jī)視野之間的交點(diǎn)取決于物體的高度。因此,如果物體的高度有變化,那么激光線和相機(jī)視點(diǎn)的交叉點(diǎn)會(huì)發(fā)生移動(dòng),相機(jī)拍攝到的物體表面激光線的成像就不是直線,而是物體表面的輪廓。利用這個(gè)輪廓,我們就可以得到該物體的高度差。為了重建物體的整個(gè)表面,即獲得一組物體的高度輪廓,物體必須相對(duì)于激光投影儀和相機(jī)組成的系統(tǒng)移動(dòng),使得整個(gè)物體表面都被掃描,從而完成整個(gè)物體表面的重建。HALCON編程基礎(chǔ)與工程應(yīng)用9.4HALCON三維測(cè)量

2.硬件系統(tǒng)及精度分析

激光三角測(cè)量所需的硬件包括一個(gè)可以投射細(xì)長光線的激光投影儀、一個(gè)相機(jī)、一個(gè)移動(dòng)平臺(tái)(一般是傳送帶)和被測(cè)對(duì)象。激光器、相機(jī)和移動(dòng)平臺(tái)的位置關(guān)系必須是不變的,而物體的位置隨著平臺(tái)的移動(dòng)而相對(duì)于激光器和相機(jī)移動(dòng)。激光投射到物體上形成的激光線輪廓要大致和相機(jī)所采集圖像的行平行。激光線投影儀、相機(jī)和要測(cè)量的物體之間的位置關(guān)系有三種配置方式(如圖9-30所示):(1)相機(jī)視點(diǎn)垂直于對(duì)象,光平面傾斜;(2)相機(jī)視點(diǎn)傾斜,光平面垂直于對(duì)象;(3)相機(jī)視點(diǎn)和光平面都傾斜。HALCON編程基礎(chǔ)與工程應(yīng)用9.4HALCON三維測(cè)量

使用哪個(gè)方式取決于測(cè)量的物體的幾何特性。當(dāng)相機(jī)視點(diǎn)垂直于物體時(shí),如果被測(cè)量的是長方體,則會(huì)被成像為一個(gè)矩形,當(dāng)相機(jī)視點(diǎn)傾斜時(shí),由于透視變形,將成像為梯形。同時(shí)還要注意陰影和遮擋,如果一個(gè)目標(biāo)點(diǎn)被激光線照亮但在相機(jī)視野中不可見,就會(huì)發(fā)生遮擋;如果目標(biāo)點(diǎn)在相機(jī)視野中可見但是沒有被激光線照亮,則會(huì)產(chǎn)生陰影效果。對(duì)于這三種方式,光平面和相機(jī)光軸之間的角度,應(yīng)在30°到60°范圍內(nèi),以獲得良好的測(cè)量精度。如果角度較小,精度會(huì)降低。如果角度較大,精度會(huì)提高。

HALCON編程基礎(chǔ)與工程應(yīng)用9.4HALCON三維測(cè)量

3.標(biāo)定利用HALCON標(biāo)準(zhǔn)標(biāo)定板

首先,相機(jī)按常規(guī)進(jìn)行標(biāo)定,即確定相機(jī)的內(nèi)外參。然后,必須根據(jù)標(biāo)定板的附加圖像來標(biāo)定光平面和標(biāo)定物體相對(duì)于測(cè)量裝置的移動(dòng)位姿。算子:get_calib_data:獲得存儲(chǔ)在標(biāo)定模型中的存儲(chǔ)數(shù)據(jù)set_origin_pose:設(shè)置3D坐標(biāo)原點(diǎn)find_calib_object:尋找Halcon標(biāo)定板,并從標(biāo)定模型中獲取標(biāo)定點(diǎn)的數(shù)據(jù)get_calib_data_observ_points:從標(biāo)定數(shù)據(jù)模型中獲取標(biāo)定信息pose_to_hom_mat3d:將三維位姿轉(zhuǎn)換為齊次變換矩陣hom_mat3d_invert:求3D齊次變換矩陣的逆矩陣hom_mat3d_compose:將兩個(gè)3D齊次變換矩陣相乘affine_trans_point_3d:進(jìn)行兩個(gè)坐標(biāo)系之間的3D坐標(biāo)的仿射變換create_pose:創(chuàng)建一個(gè)3D位姿利用特定的3D標(biāo)定對(duì)象

利用特定3D標(biāo)定對(duì)象的方法比標(biāo)定板方法簡單但是精度略低。標(biāo)定對(duì)象必須與create_sheet_of_light_calib_object創(chuàng)建的CAD模型相對(duì)應(yīng),并且其尺寸必須能完全覆蓋被測(cè)物的體積。如圖9-33就是一個(gè)3D標(biāo)定對(duì)象。為了標(biāo)定帶有特定3D標(biāo)定對(duì)象的激光三角測(cè)量系統(tǒng),需要先用此系統(tǒng)獲得3D標(biāo)定對(duì)象的視差圖(如圖9-34所示),然后利用視差圖和算子calibrate_sheet_of_light進(jìn)行標(biāo)定。HALCON編程基礎(chǔ)與工程應(yīng)用9.4HALCON三維測(cè)量

算子:create_sheet_of_light_calib_object:創(chuàng)建一個(gè)標(biāo)定對(duì)象create_sheet_of_light_model:創(chuàng)建模型來執(zhí)行激光三角測(cè)量set_sheet_of_light_param:設(shè)置相機(jī)初始參數(shù)(只支持除法模型的針孔相機(jī))calibrate_sheet_of_light:用特定的3D對(duì)象進(jìn)行激光三角測(cè)量裝置的標(biāo)定4.執(zhí)行測(cè)量

激光三角測(cè)量被用來獲取被測(cè)對(duì)象的深度信息。該高度信息由一個(gè)視差圖和X,Y,Z圖像或3D對(duì)象模型。圖像X、Y和Z以及3D對(duì)象模型只能用于已標(biāo)定的測(cè)量裝置,而視差圖也可以用于未標(biāo)定的裝置。執(zhí)行測(cè)量的主要步驟:(1)獲取要測(cè)量的每個(gè)輪廓圖,例如,使用grab_image_async。(2)使用measure_profile_sheet_of_light測(cè)量每個(gè)圖像的輪廓。(3)通過連續(xù)調(diào)用get_sheet_of_light_result獲取測(cè)量結(jié)果,如果需要3D對(duì)象模型,只需調(diào)用一次get_sheet_of_light_result_object_model_3d。(4)如果在未標(biāo)定的情況獲得了視差圖,但仍需要x、y和z坐標(biāo)或三維對(duì)象模型,則可以隨后標(biāo)定,并使用set_sheet_of_light_param將標(biāo)定獲得的相機(jī)參數(shù)添加到模型中。然后調(diào)用算子apply_sheet_of_light_calibration校正視差圖。最后使用get_sheet_of_light_result或get_sheet_of_light_result_object_model_3d分別從模型中查詢包含坐標(biāo)x,y和z或3D對(duì)象模型的結(jié)果圖??梢允褂胓et_sheet_of_light_param查詢已為特定模型設(shè)置的所有參數(shù)或默認(rèn)設(shè)置的參數(shù),要查詢Sheet-of-light模型設(shè)置的所有參數(shù),可調(diào)用query_sheet_of_light_params。HALCON編程基礎(chǔ)與工程應(yīng)用9.4HALCON三維測(cè)量

算子:grab_image_async:異步抓取圖像measure_profile_sheet_of_light:測(cè)量各個(gè)輪廓get_sheet_of_light_result:查詢測(cè)量結(jié)果get_sheet_of_light_result_object_model_3d:從3D對(duì)象模型中獲得測(cè)量結(jié)果apply_sheet_of_light_calibration:對(duì)輸入的視差圖進(jìn)行校正get_sheet_of_light_param:獲取Sheet-of-light測(cè)量模型設(shè)置的參數(shù)值query_sheet_of_light_params:返回一個(gè)列表,包含可以為sheet-light模型設(shè)置的所有參數(shù)的名稱HALCON編程基礎(chǔ)與工程應(yīng)用9.5HALCON測(cè)量助手

讀取圖片

可以在打開圖像之后再打開測(cè)量助手,也可以直接通過測(cè)量助手讀取圖像,單張圖像可以選中“圖像窗口”,直接通過“Ctrl+R”打開,也可以選中“圖像文件”直接打開文件路徑選擇,如果需要實(shí)時(shí)圖像可以使用“圖像采集助手”進(jìn)行實(shí)時(shí)采集,如圖9-39。如果讀取的文件沒有進(jìn)行標(biāo)定,可以通過“標(biāo)定助手”直接進(jìn)入到標(biāo)定界面,也可以直接讀取標(biāo)定文件。如圖9-40所示。HALCON編程基礎(chǔ)與工程應(yīng)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論