halcon相机标定之camera_calibration_external.hdev

本文档介绍了如何使用Halcon的camera_calibration_external.hdev进行相机标定,包括读取内部参数、标定板图像处理、外部参数计算等步骤,详细展示了从图像坐标到世界坐标系转换的过程。
摘要由CSDN通过智能技术生成

*注意,这个程序需要读取相机内部参数,而这个参数是由camera_calibration_internal.hdev这个项目生成的。

  • Attention:
  • This program reads the internal camera parameters from the file
  • ‘camera_parameters.dat’, which, e.g., could be generated by the program
  • ‘camera_calibration_internal.hdev’
  • *图像路径
    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 (1)
    *设置窗体字体,影响窗体大小
    set_display_font (WindowHandle, 14, ‘mono’, ‘true’, ‘false’)
    *读取项目内部参数
  • Read the internal camera parameters from file
    try
    *读取参数
    read_cam_par (‘camera_parameters.dat’, CamParam)
    catch (Exception)
    *先把这个程序跑一下camera_calibration_internal.hdev,生成内部参数
    • run ‘camera_calibration_internal.hdev’ first to generate camera
    • parameter file ‘camera_parameters.dat’
      stop ()
      endtry
      *从图像点钟 定义外部参数和世界坐标
  • Determine the external camera parameters and world coodinates from image points
  • 外部参数可以从标定板的一张图像获取,这个标定板直接在测量平面上定位
  • The external camera parameters can be determined from an image, where the
  • calibration plate is positioned directly on the measurement plane
    *读取图像
    read_image (Image, ImgPath + ‘calib_11’)
    *显示图像
    dev_display (Image)
    *标定板描述文件
    CaltabName := ‘caltab_30mm.descr’
    *创建标定板ID
    create_calib_data (‘calibration_object’, 1, 1, CalibDataID)
    *最终的相机内部参数现在已经求出来,可以直接代替上一个内部参数矫正中使用的初始参数。
  • Here, the final camera parameters are already known and can be used instead
  • of the starting values used in the program ‘camera_calibration_internal.hdev’
    *设定参相机参数
    set_calib_data_cam_param (CalibDataID, 0, [], CamParam)
    *设定标定板描述文件
    set_calib_data_calib_object (CalibDataID, 0, CaltabName)
    *寻找标定板,并把标定数据放在CalibDataID中
    find_calib_object (Image, CalibDataID, 0, 0, 1, [], [])
    *获取标定板轮廓
    get_calib_data_observ_contours (Caltab, CalibDataID, ‘caltab’, 0, 0, 1)
    *获取基于点的观测数据并保存在CalibDataID里面
    get_calib_data_observ_points (CalibDataID, 0, 0, 1, RCoord, CCoord, Index, PoseForCalibrationPlate)

*设置显示颜色
dev_set_color (‘green’)
*显示轮廓
dev_display (Caltab)
*设置显示颜色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值