Halcon 在3D 模組使用前需要將相機做參數校正
首先 需要設定 要使用的相機組成(CameraType) 與 相機與鏡頭的參數(CameraPAram)
CameraType 這邊參考 Halcon 的文件 選擇 合適的 Type
CameraType | CameraParam | # |
---|---|---|
'area_scan_division' | [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight] | 8 |
'area_scan_telecentric_division' | [0, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight] | 8 |
'area_scan_tilt_division' | [Focus, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight] | 10 |
'area_scan_telecentric_tilt_division' | [0, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight] | 10 |
'area_scan_polynomial' | [Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight] |
12 |
'area_scan_telecentric_polynomial' | [0, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight] |
12 |
'area_scan_tilt_polynomial' | [Focus, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight] |
14 |
'area_scan_telecentric_tilt_polynomial' | [0, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight] |
14 |
'line_scan' | [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz] | 11 |
比較特別的是 Camera Param 這部分
Facus :
如果是 telecentric的鏡頭 Facus 是填 0,如果不是,那就要看鏡頭本身的參數
比如手上用的是 25mm 的 CCTV 鏡頭,就填入0.025
Kappa :
這部分的參數先填 0 ,後面校正結束 Halcon 會填入
Sx Sy: 填入 X PixelSize 與 Y PixelSize
Cx Cy: 填入影像 1/2 寬 1/2高 的數值
ImageWidth : 填入影像寬
ImageHeight : 填入影像高
整個設定過程:
StartCamPar1 :=[0.025,0,0.0000074,0.0000074,320,240,640,480]
caltabFile := 'D:/Study/Halcon/3D/Caltab/caltab_50mm.descr'
create_calib_data ('calibration_object', 1, 1, CalibDataID)
set_calib_data_cam_param (CalibDataID, 0, 'area_scan_division', StartCamPar1)
設定好之後 就可以開始 拍 校正版的影像
使用 calibration plates with hexagonally arranged marks 最少拍攝 6張
使用 calibration plates with rectangularly arranged marks 需拍攝 10~20張
grab_image(Image,AcqHandle)
dev_display (Image)
find_calib_object (Image, CalibDataID, 0, 0, I, [], [])
get_calib_data_observ_contours (Caltab, CalibDataID, 'caltab', 0, 0, I)
dev_display (Caltab)
最後取得校正的參數 將 校正後的參數 寫到硬碟
calibrate_cameras (CalibDataID, Error)
get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)
write_cam_par (CamParam, 'camera_parameters.dat')
留言列表