Halcon 相机内部参数(camera_calibration_internal.hdev)

1.gen_cam_par_area_scan_division — Generate a camera parameter tuple for an area scan camera with distortions modeled by the division model     为面阵相机生成一个相机参数元组,该元组具有由分割模型建模的畸变

  gen_cam_par_area_scan_division (0.016, 0, 0.0000074, 0.0000074, 326, 247, 652, 494, StartCamPar)

  CameraParam := ['area_scan_division',Focus,Kappa,Sx,Sy,Cx,Cy,ImageWidth,ImageHeight]

2.set_calib_data_cam_param     在校准数据模型中设置相机的类型和初始参数

  相机类型及其各自参数的概述:

        a.面阵相机与常规镜头    

    Projective area scan cameras(投射面阵扫描相机)

      'area_scan_division'
      ['area_scan_division', Focus, Kappa(畸变), Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

      'area_scan_polynomial'
      ['area_scan_polynomial', Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

    Telecentric area scan cameras(远心面阵扫描相机)

      'area_scan_telecentric_division'
      ['area_scan_telecentric_division', Magnification(放大倍率), Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

      'area_scan_telecentric_polynomial'
      ['area_scan_telecentric_polynomial(多项式)', Magnification, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

  b.线阵相机

    Projective line scan cameras(投射线阵扫描相机)

      'line_scan_division'
      ['line_scan_division', Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]

      'line_scan_polynomial'
      ['line_scan_polynomial', Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]

    Telecentric line scan cameras(远心线阵扫描相机)

      'line_scan_telecentric_division'
      ['line_scan_telecentric_division', Magnification, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]

      'line_scan_telecentric_polynomial'
      ['line_scan_telecentric_polynomial', Magnification, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]

复制代码
ImgPath := '3d_machine_vision/calib/'
dev_close_window ()
dev_open_window (0, 0, 652, 494, 'black', WindowHandle)
dev_update_off ()
dev_set_draw ('margin')
dev_set_line_width (3)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
* 
* Calibrate the camera.
* 
gen_cam_par_area_scan_division (0.016, 0, 0.0000074, 0.0000074, 326, 247, 652, 494, StartCamPar)
create_calib_data ('calibration_object', 1, 1, CalibDataID)
set_calib_data_cam_param (CalibDataID, 0, [], StartCamPar)
set_calib_data_calib_object (CalibDataID, 0, 'caltab_30mm.descr')
NumImages := 10
* Note, we do not use the image from which the pose of the measurement plane can be derived
for I := 1 to NumImages by 1
    read_image (Image, ImgPath + 'calib_' + I$'02d')
    dev_display (Image)
    find_calib_object (Image, CalibDataID, 0, 0, I, [], [])
    get_calib_data_observ_contours (Caltab, CalibDataID, 'caltab', 0, 0, I)
    dev_set_color ('green')
    dev_display (Caltab)
endfor
calibrate_cameras (CalibDataID, Error)
get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)
* Write the internal camera parameters to a file
write_cam_par (CamParam, 'camera_parameters.dat')
Message := 'Interior camera parameters have'
Message[1] := 'been written to file'
disp_message (WindowHandle, Message, 'window', 12, 12, 'red', 'false')
clear_calib_data (CalibDataID)
View Code
复制代码

 

posted @   echo-efun  阅读(795)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2020-12-28 搬运:windows不重启,环境变量生效
2020-12-28 查看tensorflow版本及安装路径
点击右上角即可分享
微信分享提示