0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

halcon單相機標(biāo)定和畸變矯正程序

機器人及PLC自動化應(yīng)用 ? 來源:機器人及PLC自動化應(yīng)用 ? 2023-07-03 10:12 ? 次閱讀

為什么要進行單相機標(biāo)定?

廣義:畸變矯正和一維和二維測量

畸變矯正:

在幾何光學(xué)和陰極射線管(CRT)顯示中?;兪菍χ本€投影的一種偏移。簡單來說直線投影是場景內(nèi)的一條直線投影到圖片上也保持為一條直線。那畸變簡單來說就是一條直線投影到圖片上不能保持為一條直線了。這是一種光學(xué)畸變(optical aberration)?;兪且环N相差,可能由于攝像機鏡頭導(dǎo)致,會對拍攝的物體的形狀產(chǎn)生變化,影響測量。

我自己對畸變矯正的理解就是,當(dāng)相機進行標(biāo)定時,雖然標(biāo)定板也產(chǎn)生了畸變,但是標(biāo)定板(圓形)的準(zhǔn)確數(shù)據(jù)我們已經(jīng)告訴了halcon,比如,圓的排列方式、直徑、中心距等。通過加載多張標(biāo)定板圖片,halcon可以通過函數(shù)求出鏡頭里發(fā)生畸變的標(biāo)定板與未發(fā)生畸變的標(biāo)定板之間的映射關(guān)系,也就是相機本身的內(nèi)參(拍攝有畸變)和矯正之后無畸變內(nèi)參之間的映射關(guān)系,將這種映射關(guān)系作用到拍攝時發(fā)生畸變的物體當(dāng)中,就完成了畸變校正.。

步驟:

1)通過標(biāo)定求出相機內(nèi)參。

2)通過有畸變的內(nèi)參求出無畸變的內(nèi)參。用chage_radial_distortion_cam_par()函數(shù)完成。

3)求出有畸變的內(nèi)參和無畸變的內(nèi)參之間的映射關(guān)系。用

gen_radial_distortion_map()函數(shù)

4)將上邊的映射關(guān)系作用到產(chǎn)生畸變的物體當(dāng)中,完成畸變校正

一維和二維的測量

圖片上的尺寸是像素距離,標(biāo)定后,可以求出像素距離與物理空間距離的換算關(guān)系,從而計算出實際的物理尺寸。

狹義:求解相機的內(nèi)參和外參以及畸變參數(shù),得到二維平面像素坐標(biāo)和三維世界坐標(biāo)的關(guān)系,從而進行三維重建。

相機內(nèi)參:相機的固有屬性,在進行畸變校正時需要用到相機的內(nèi)參。

相機外參:物體在經(jīng)過透鏡成像之后,實際上是經(jīng)過了旋轉(zhuǎn)和平移,而外參就是告訴我們物體成像后經(jīng)過了那種旋轉(zhuǎn)和平移,相機的外參包括平移矢量和旋轉(zhuǎn)矩陣。

畸變參數(shù):采用理想針孔模型,由于通過針孔的光線少,攝像機曝光太慢,在實際使用中均采用透鏡,可以使圖像生成迅速,但代價是引入了畸變。有兩種畸變對投影圖像影響較大:徑向畸變和切向畸變。

相機的畸變和內(nèi)參是相機本身的固有特性,標(biāo)定一次即可一直使用。但由于相機本身并非理想的小孔成像模型以及計算誤差,采用不同的圖片進行標(biāo)定時得到的結(jié)果都有差異。一般重投影誤差很小的話,標(biāo)定結(jié)果均可用。

二、標(biāo)定流程

實現(xiàn)的原理是根據(jù)相機的像元尺寸、焦距和標(biāo)定板的描述文件(.descr)來找到顯示的標(biāo)定板圖像上面的標(biāo)志點,從而確定標(biāo)定板實際輸入的參數(shù)(Distance、Diameter等)和這些參數(shù)對應(yīng)的圖像像素大小的關(guān)系,完成標(biāo)定。

a1aa40d4-18e6-11ee-962d-dac502259ad0.png

標(biāo)定步驟:

1)使用gen_caltab算子生成一個標(biāo)定文件

a1bfd750-18e6-11ee-962d-dac502259ad0.png

標(biāo)定前需要生成一個.descr的描述文件,也就是世界坐標(biāo)系與像素坐標(biāo)系的關(guān)系,當(dāng)我們下一次做別的項目時,只需要調(diào)用描述文件,即可完成標(biāo)定過程。

生成標(biāo)記文件的算子:gen_caltab (7, x方向的標(biāo)記數(shù);

7, y方向的標(biāo)記數(shù);

0.0075, 標(biāo)記點圓心之間的距離,單位:米;

0.5, 標(biāo)記點直徑與標(biāo)記點圓心之間距離的比值;

‘C:/Users/Administrator/Desktop/caltab.descr’,標(biāo)定板的描述文件的保 存路徑;

‘caltab.ps’,描述標(biāo)定板的一些信息,打印標(biāo)定板時會用到)

a1f4ebca-18e6-11ee-962d-dac502259ad0.png

a22f2d8a-18e6-11ee-962d-dac502259ad0.png

2)打開標(biāo)定助手,加載標(biāo)定文件,設(shè)置相機參數(shù)(單個像元寬高(問相機廠商或看手冊),相機焦距)

a25689ac-18e6-11ee-962d-dac502259ad0.png3)實時獲取各個角度、位置的標(biāo)定板圖片(9-16張左右),并選擇其中一種圖片設(shè)置參考位姿,然后標(biāo)定。

a266996e-18e6-11ee-962d-dac502259ad0.png
可以看到相機的參數(shù):

a2753258-18e6-11ee-962d-dac502259ad0.png4)保存相機內(nèi)、外參,下次使用測量助手直接調(diào)用內(nèi)外參文件。

a28af9da-18e6-11ee-962d-dac502259ad0.png單獨說一下如何進行畸變校正,可以接上面的第三步之后:生成標(biāo)定數(shù)據(jù)(相機內(nèi)、外參)代碼,從而進行畸變校正

a2a8e8b4-18e6-11ee-962d-dac502259ad0.png

*相機內(nèi)參

CameraParameters := [0.0375147,-270.806,8.30152e-006,8.3e-006,647.48,520.914,1280,960]

*相機位姿,即外參(旋轉(zhuǎn)矩陣+平移矢量)

CameraPose := [-0.0091626,-0.00625214,0.700967,2.46926,358.933,179.443,0]

*1、校正徑向畸變,得到新的相機內(nèi)參

change_radial_distortion_cam_par (‘a(chǎn)daptive’, CameraParameters, 0, CamParamOut)

stop ()

Image Acquisition 02: Code generated by Image Acquisition 02

open_framegrabber (‘GigEVision’, 0, 0, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘false’, ‘default’, ‘CAMERA_QBY_DM’, 0, -1, AcqHandle)

grab_image_start (AcqHandle, -1)

while (true)

grab_image_async (Image, AcqHandle, -1)

*2、對發(fā)生徑向畸變的圖像生成投影映射,圖像的映射數(shù)據(jù)存在第一個參數(shù)中

gen_radial_distortion_map (Map, CameraParameters, CamParamOut, ‘bilinear’)

*3、對圖像進行畸變校正

map_image (Image, Map, ImageMapped)

endwhile

close_framegrabber (AcqHandle)

注意:相機標(biāo)定之后,相機焦距、上下位置不能再動,否則需要重新標(biāo)定。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1084

    瀏覽量

    40463
  • 相機
    +關(guān)注

    關(guān)注

    4

    文章

    1351

    瀏覽量

    53612
  • crt
    crt
    +關(guān)注

    關(guān)注

    2

    文章

    81

    瀏覽量

    35905
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3787

    瀏覽量

    81043

原文標(biāo)題:halcon單相機標(biāo)定和畸變矯正程序

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    labview圖像畸變矯正問題

    求助各位大佬,如下圖,圖像畸變矯正需要有個矯正模板template.png,怎么樣可以把這個“template.png”的矯正信息全部變成常量放入到VI里面。后面vi就不需要調(diào)用這個地
    發(fā)表于 06-20 22:16

    相機標(biāo)定介紹

    什么是攝相機標(biāo)定?攝相機標(biāo)定方法的分類?感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-22 12:04 ?0次下載

    遺傳算法的單目相機標(biāo)定

    針對張正友標(biāo)定方法中相機內(nèi)參數(shù)的求解可能陷入局部最優(yōu)解的問題,考慮鏡頭的三階徑向畸變和二階離心畸變,提出一種基于改進遺傳算法的單目相機內(nèi)參數(shù)
    發(fā)表于 01-05 16:11 ?2次下載

    HALCON的3D相機標(biāo)定

    轉(zhuǎn)自:微信公眾號AI圖像 創(chuàng)建標(biāo)定數(shù)據(jù)模型 你可以用算子create_calib_data創(chuàng)建一個標(biāo)定數(shù)據(jù)模型,指定相機標(biāo)定物體的數(shù)量。當(dāng)用一個
    的頭像 發(fā)表于 10-31 11:31 ?4031次閱讀
    <b class='flag-5'>HALCON</b>的3D<b class='flag-5'>相機</b><b class='flag-5'>標(biāo)定</b>

    剖析Halcon 9點標(biāo)定旋轉(zhuǎn)中心標(biāo)定與使用

    本文是本人的經(jīng)驗總結(jié),不代表標(biāo)準(zhǔn)理論,有錯誤請指正; 主要講解上下雙相機定位貼合的原理和實現(xiàn)過程,包括各種標(biāo)定、組合使用及具體的halcon源碼實現(xiàn),適用于的X、Y、Z三軸加一旋轉(zhuǎn)軸系統(tǒng),如模組
    的頭像 發(fā)表于 05-08 10:05 ?4w次閱讀
    剖析<b class='flag-5'>Halcon</b> 9點<b class='flag-5'>標(biāo)定</b>旋轉(zhuǎn)中心<b class='flag-5'>標(biāo)定</b>與使用

    基于除法畸變模型的鏡頭線性標(biāo)定方法

    針對魚眼鏡頭的高精度標(biāo)定需求,提岀一種基于除法畸變模型的線性標(biāo)定方法。通過除法模型將題轉(zhuǎn)換為線性方程組求解問題相機畸變中心后對
    發(fā)表于 05-19 11:39 ?7次下載

    為什么要進行單相機標(biāo)定

    為什么要進行單相機標(biāo)定? 廣義:畸變矯正和一維和二維測量 畸變矯正: 在幾何光學(xué)和陰極射線管(C
    的頭像 發(fā)表于 09-02 09:45 ?3478次閱讀

    相機標(biāo)定含義(解決什么是相機標(biāo)定

    在大多數(shù)條件下,這些參數(shù)必須通過實驗與計算才能得到。無論是在圖像測量或者機器視覺應(yīng)用中,相機參數(shù)的標(biāo)定都是非常關(guān)鍵的環(huán)節(jié),其標(biāo)定結(jié)果的精度及算法的穩(wěn)定性直接影響相機工作產(chǎn)生結(jié)果的準(zhǔn)確性
    的頭像 發(fā)表于 06-21 11:12 ?8409次閱讀

    基于圓形標(biāo)定點的相機幾何參數(shù)的標(biāo)定

    相機標(biāo)定可以歸納為P?n?P(Perspective-n-Point)的問題,即已知三維物點坐標(biāo)和對應(yīng)的二維投影坐標(biāo),求解相機參數(shù)。由于鏡頭的畸變(徑向和切向)帶來非線性成像模型,一般
    的頭像 發(fā)表于 12-21 09:52 ?1448次閱讀

    一種基于相位靶標(biāo)的攝像機標(biāo)定迭代畸變補償算法

    相機畸變是影響相機標(biāo)定精度的關(guān)鍵因素。由于畸變補償不準(zhǔn)確,傳統(tǒng)的標(biāo)定方法不能滿足要求較高
    的頭像 發(fā)表于 01-05 10:18 ?1356次閱讀

    如何學(xué)習(xí)相機模型與標(biāo)定?

    相機標(biāo)定是通過輸入帶有標(biāo)定patter的標(biāo)定板來獲得相機參數(shù)的一個過程。實際的光學(xué)成像是一套非常復(fù)雜的過程,從三維世界投影到
    的頭像 發(fā)表于 06-01 14:36 ?763次閱讀
    如何學(xué)習(xí)<b class='flag-5'>相機</b>模型與<b class='flag-5'>標(biāo)定</b>?

    常用視覺的三種相機標(biāo)定總結(jié)

    選中Export Camera Parameters按鈕,將計算得到的相關(guān)參數(shù)導(dǎo)入到Matlab中;若要進行更精確的標(biāo)定,可在標(biāo)定時考慮畸變誤差或采用雙目相機
    發(fā)表于 10-09 10:51 ?2151次閱讀
    常用視覺的三種<b class='flag-5'>相機</b><b class='flag-5'>標(biāo)定</b>總結(jié)

    關(guān)于魚眼相機標(biāo)定畸變矯正的分享

    在目標(biāo)追蹤任務(wù)中,通常的球機或者槍機方案,無法避免人群遮擋的問題,從而導(dǎo)致較高的ID Swich,造成追蹤不穩(wěn)定。
    的頭像 發(fā)表于 10-18 14:24 ?3323次閱讀
    關(guān)于魚眼<b class='flag-5'>相機</b><b class='flag-5'>標(biāo)定</b>的<b class='flag-5'>畸變</b>與<b class='flag-5'>矯正</b>的分享

    基于DCC和張氏標(biāo)定相機鏡頭畸變校正

    電子發(fā)燒友網(wǎng)站提供《基于DCC和張氏標(biāo)定相機鏡頭畸變校正.pdf》資料免費下載
    發(fā)表于 08-29 10:37 ?0次下載
    基于DCC和張氏<b class='flag-5'>標(biāo)定</b>的<b class='flag-5'>相機</b>鏡頭<b class='flag-5'>畸變</b>校正

    TDA4x(LDC) 畸變矯正應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《TDA4x(LDC) 畸變矯正應(yīng)用說明.pdf》資料免費下載
    發(fā)表于 09-10 10:58 ?0次下載
    TDA4x(LDC) <b class='flag-5'>畸變</b><b class='flag-5'>矯正</b>應(yīng)用說明