halcon之屌炸天的自标定

halcon之屌炸天的自标定(1)

 

 

本次先对halcon的自标定做个整体介绍,了解屌炸天的自标定在实际应用中的应用与实现方法,具体的编程细节将在后续的文章中介绍。

 

halcon提供了一种自标定的算子,它可以在不用标定板的情况下,标定出相机内参(无焦距),相对于多幅标定无法获取相机的外参。

 

求出了相机内参就可以进行畸变校正,因而自标定相对于多幅标定,在畸变校正方面更快捷,这样设备在现场更容易操作、维护。

 

在畸变校正以后我们同样可以放置一个参考物求取像素当量,构建XY世界坐标系,以用于测量、定位等应用。

 

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    edges_sub_pix (GrayImage,Edges, 'canny' ,1.0,20,40)
    segment_contours_xld (Edges,ContoursSplit, 'lines_circles' ,5,8,4)
    radial_distortion_self_calibration (ContoursSplit,SelectedContours, \
                                        640,480,0.08,42, 'division' , \
                                        'variable' ,0,CameraParam)
    get_domain (GrayImage,Domain)
    change_radial_distortion_cam_par ( 'fullsize' ,CameraParam,0,CamParamOut)
    change_radial_distortion_image (GrayImage,Domain,ImageRectified, \
                                     CameraParam,CamParamOut)

 

上述代码是一个常规的自标定流程:

1.求出拍摄物体的边缘XLD

2.使用radial_distortion_self_calibration函数,根据边缘求出相机内参

3.change_radial_distortion_cam_par 求出理想无畸变内参

4.change_radial_distortion_image 根据相机内参,对图像进行畸变校正

 

更多例程参考halcon example

radial_distortion_self_calibration.hdev

 

Calibrate the radial distortion coefficient and the center of distortion

radial_distortion_comparison.hdev

 

Compare results of camera calibration and radial distortion self-calibration

 

自标定的原理来自此论文,论文要钱无法获取实在遗憾无法深入了解,哪位能下载到记得email我一份。

T. Thormälen, H. Broszio: “Automatic line-based estimation of radial lens distortion”; in: Integrated Computer-Aided Engineering; vol. 12; pp. 177-190; 2005.

 
但是根据说明文档可以了解到:halcon的自标定根据提取到是物体边缘的直线,求出相机畸变系数。
 
因为畸变一般在图像的边缘更严重,所以需要保证在图像的四周边缘有足够的直线线段。
 
当然在实际项目中拍摄物体不可能都像例程中一样有理想的直线边缘,替代方法是:用菲林片制作一张网格黑色印制(10*10,可以根据自己实际情况调整)充满整个视野,
 
相机拍摄一次求取内参,根据此结果进行标定,同时还可以根据网格求出像素当量,构建XY世界坐标系。
 
NOTICE:使用halcon自标定需要保证运行环境内存>=2G,当使用 多项式模式标定则需要>=4G,否则会出现error 6001:memory not enough。
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值