1. 程式人生 > 實用技巧 >Halcon 單相機標定+消除徑向畸變

Halcon 單相機標定+消除徑向畸變

單相機標定通常是相機使用的第一步,只有通過標定才能準確的獲得相機的內參,以便於進行消除畸變、1D/2D測量等後續操作。

1、生成標定板描述檔案

gen_caltab (7, 7, 0.0125, 0.5, 'caltab.descr', 'caltab.ps')

引數含義可以查手冊(f1),執行後會在當前目錄下生成兩個檔案: caltab.descr:標定板描述檔案用於接下來的標定 caltab.ps:可用於列印標定板

2、標定助手

1)、描述檔案選擇剛剛生成的 2)、選擇全標定,相元的高、寬可以諮詢相機的商家詢問,焦距可以檢視鏡頭上,一般有標明,這裡的引數只是初始引數。 3)、標定欄,選擇採集助手,點實時,有兩種合格的狀態提示(確定是完美品質,品質有問題不耽誤使用),失敗一般是沒有完全覆蓋標定板。 4)、點採集20張左右的圖片,儘量覆蓋整個視場,覆蓋所有角度(3d)。 5)、選擇一張圖片作為基礎參考位姿。 6)、可以儲存圖片,如果標定後續有可能利用標定助手生成的程式碼進行標定可以用。失敗的圖片要移除,否則無法標定。 7)、點選標定,可以看到結果欄的內外參結果,可以儲存成檔案。用的時候可以直接讀取程序序使用。 8)、在程式碼生成欄,可以插入tuple資料,也可以插入標定程式碼。

3、例項:單相機標定+消除徑向畸變

* 標定 + 消除徑向畸變
* Calibration 01: Code generated by Calibration 01
CameraParameters := [0.0057932,-11394.5,6.00136e-006,6e-006,330.616,235.876,640,480]
CameraPose := [0.00223981,-0.00965318,0.110595,6.81103,1.68414,177.246,0]

* Image Acquisition 01: Code generated by Image Acquisition 01
change_radial_distortion_cam_par (
'adaptive', CameraParameters, 0, CamParamOut) open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '[0] LRCP USB2.0', 0, -1, AcqHandle) grab_image_start (AcqHandle, -1) while (true) grab_image_async (Image, AcqHandle, -1) * Image Acquisition 01: Do something gen_radial_distortion_map (Map, CameraParameters, CamParamOut,
'bilinear') map_image (Image, Map, ImageMapped) endwhile close_framegrabber (AcqHandle)