日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

halcon 旋转_HALCON高级篇:3D相机标定(3/3)

發(fā)布時(shí)間:2023/12/10 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 halcon 旋转_HALCON高级篇:3D相机标定(3/3) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

訪問(wèn)標(biāo)定結(jié)果

算子calibrate_cameras的主要結(jié)果由相機(jī)內(nèi)參和每一張圖像標(biāo)定板的位姿組成。算子將它們存儲(chǔ)在標(biāo)定數(shù)據(jù)模型中,可以用算子get_calib_data來(lái)訪問(wèn)它們。

相機(jī)外參并不能直接被獲取,因?yàn)樗璧氖澜缱鴺?biāo)系統(tǒng)的信息沒(méi)有存儲(chǔ)在標(biāo)定數(shù)據(jù)模型中。然而,如果標(biāo)定板被直接放置在測(cè)量平面上,其位姿可以被用來(lái)很容易的得到相機(jī)的外參,其是測(cè)量平面的位姿。

確定相機(jī)外參

相機(jī)外參描述了測(cè)量平面和相機(jī)的關(guān)系,例如如果僅僅外參是已知,就可能將相機(jī)坐標(biāo)系統(tǒng)(CCS)轉(zhuǎn)化到測(cè)量平面的坐標(biāo)系統(tǒng),反之亦然。在HALCON中,測(cè)量平面被定義為世界坐標(biāo)系統(tǒng)(WCS)z=0的平面。

相機(jī)外參可以用不同的方法來(lái)確定:

  • 利用從某一個(gè)標(biāo)定圖像獲取的位姿,其中標(biāo)定圖像中標(biāo)定板被直接放置在測(cè)量平面上。在這種情況下,你就可以用算子get_calib_data來(lái)獲得其位姿。
  • 通過(guò)一個(gè)標(biāo)定板被直接放置在測(cè)量平面的額外圖像,將相機(jī)內(nèi)參的確定從相機(jī)外參的確定分離出來(lái)。應(yīng)用find_calib_object去提取標(biāo)定標(biāo)志點(diǎn)和位姿。
  • 自己去確定3D世界點(diǎn)和它們?cè)趫D像映射的對(duì)應(yīng)關(guān)系,然后調(diào)用vector_to_pose。
  • 如果你僅僅需要去精確地測(cè)量一個(gè)物體的尺寸,而不是在一個(gè)給定坐標(biāo)系統(tǒng)的物體的絕對(duì)位置,前兩種方法中一種就可以使用。

    后兩種情況具有相機(jī)外參的決定不依賴相機(jī)內(nèi)參的優(yōu)勢(shì)。如果用單個(gè)相機(jī)在數(shù)個(gè)平面上做測(cè)量,或者不能在原地標(biāo)定相機(jī),這將是更加靈活和有用。

    下面將對(duì)不同的情況做詳細(xì)的講解。

    在標(biāo)定圖像之一將標(biāo)定板放置在測(cè)量平面上

    第一種情況是一種最容易決定外參的方法。標(biāo)定板必須直接放置在測(cè)量平面上,例如流水線。

    因?yàn)橥ㄟ^(guò)算子calibrate_cameras,標(biāo)定板的位姿可以確定下來(lái),你可以通過(guò)算子get_calib_data簡(jiǎn)單的訪問(wèn)其位姿。這樣,用一個(gè)單一的標(biāo)定步驟,內(nèi)參和外參就能確定下來(lái)。這里,在第一個(gè)標(biāo)定圖像中標(biāo)定板(標(biāo)定物索引0)的位姿被確定。請(qǐng)注意的是每一個(gè)位姿是由7個(gè)值組成的。

    如果標(biāo)定把是無(wú)限的薄的,結(jié)果位姿將是測(cè)量平面的真實(shí)位姿。因?yàn)檎鎸?shí)的標(biāo)定板有一個(gè)厚度d>0,標(biāo)定板的位姿通過(guò)一個(gè)垂直于測(cè)量平面的量d的移動(dòng),例如沿著WCS的z軸。為了矯正它,我們需要沿著WCS的z軸去移動(dòng)位姿d個(gè)單位。為了執(zhí)行這個(gè)移動(dòng),算子set_origin_pose被利用:

    一般地,只要標(biāo)定板和測(cè)量平面的空間關(guān)系是已知的,標(biāo)定板在WCS中就可以任意地鎖定方向(如圖3所示)。然后,為了從標(biāo)定板位姿中獲得測(cè)量平面的位姿,一個(gè)剛性轉(zhuǎn)換時(shí)必須的。在下面的例子中,標(biāo)定板的位姿沿著y軸平移,接著繞著x軸旋轉(zhuǎn)。

    在一個(gè)單獨(dú)圖像中放置標(biāo)定板在測(cè)量平面上

    如果用HALCON標(biāo)定板的優(yōu)勢(shì)可以將相機(jī)內(nèi)參和外參分離所具有的靈活性相結(jié)合,第二種相機(jī)外參確定的方法可以使用。

    首先,相機(jī)按照標(biāo)定步驟進(jìn)行標(biāo)定。這可以優(yōu)先于相機(jī)在最終使用點(diǎn)安裝之前完成。

    然后,在最終使用點(diǎn)安裝完相機(jī)以后,外參就可以被確定。僅僅需要做的就是取一張圖,圖中標(biāo)定被直接放在了測(cè)量平面上。從這張圖中,外參就可以被確定下來(lái)。這里,內(nèi)參,標(biāo)定板被直接放在測(cè)量平面上的圖像和標(biāo)定標(biāo)志點(diǎn)的世界坐標(biāo)可從文件中讀取。

    然后,標(biāo)定標(biāo)志點(diǎn)和標(biāo)定板的位姿被提取:

    最后,考慮到標(biāo)定板的厚度,被給相機(jī)位姿原點(diǎn)的值平移標(biāo)定板厚度個(gè)單位。

    圖3 標(biāo)定板和測(cè)量平面的關(guān)系

    需要注意的是,如果你想將標(biāo)定步驟分為兩個(gè)部分來(lái)完成的話,相機(jī)的聚焦是很重要的,因?yàn)楦淖兘裹c(diǎn)就相當(dāng)于改變焦距,其是內(nèi)參的一部分。

    利用已知的3D點(diǎn)和它們對(duì)應(yīng)的圖像點(diǎn)

    如果在給定的世界坐標(biāo)系統(tǒng)中執(zhí)行測(cè)量是必要的,對(duì)于外參的確定,第三種情況就可以使用。這里,你需要知道至少不再一條直線上3個(gè)點(diǎn)的3D世界坐標(biāo),然后,你必須確定這些點(diǎn)映射后相對(duì)應(yīng)的圖像坐標(biāo)。現(xiàn)在,算子vector_to_pose可以被用來(lái)確定相機(jī)的外參。

    下面的程序作為一個(gè)確定外參的例子。

    首先,三個(gè)點(diǎn)的世界坐標(biāo)被設(shè)定。

    然后,在圖像上這些點(diǎn)映射后的圖像坐標(biāo)被確定。在這個(gè)例子中,它們被很簡(jiǎn)單的設(shè)定位一些接近的 值。實(shí)際上,它們應(yīng)該以亞像素的精度確定下來(lái),因?yàn)樗麄兌x了相機(jī)外參。

    最后,算子vector_to_pose在已知對(duì)應(yīng)關(guān)系和相機(jī)內(nèi)參的情況下,被調(diào)用。

    從標(biāo)定數(shù)據(jù)模型中刪除觀測(cè)圖

    為了確定有關(guān)標(biāo)定的觀測(cè)效果,或者從標(biāo)定數(shù)據(jù)模型中移除壞質(zhì)量的觀測(cè)數(shù)據(jù),可以用算子remove_calib_data_observ刪除一個(gè)觀測(cè)圖。

    當(dāng)再次執(zhí)行相機(jī)標(biāo)定的時(shí)候,需要注意標(biāo)定錯(cuò)誤的改變。

    保存結(jié)果和銷毀標(biāo)定數(shù)據(jù)模型

    在訪問(wèn)結(jié)果(或者用算子write_cam_par和write_pose來(lái)存儲(chǔ)它們),你可以借助算子clear_calib_data銷毀標(biāo)定數(shù)據(jù)模型。

    總結(jié)

    以上是生活随笔為你收集整理的halcon 旋转_HALCON高级篇:3D相机标定(3/3)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。