本次先对halcon的自标定作个总体介绍,了解屌炸天的自标定在实际应用中的应用与实现方法,具体的编程细节将在后续的文章中介绍。编程
halcon提供了一种自标定的算子,它能够在不用标定板的状况下,标定出相机内参(无焦距),相对于多幅标定没法获取相机的外参。微信
求出了相机内参就能够进行畸变校订,于是自标定相对于多幅标定,在畸变校订方面更快捷,这样设备在现场更容易操做、维护。dom
在畸变校订之后咱们一样能够放置一个参考物求取像素当量,构建XY世界坐标系,以用于测量、定位等应用。ide
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.求出拍摄物体的边缘XLDspa
2.使用radial_distortion_self_calibration函数,根据边缘求出相机内参orm
3.change_radial_distortion_cam_par 求出理想无畸变内参blog
4.change_radial_distortion_image 根据相机内参,对图像进行畸变校订内存
更多例程参考halcon exampleci
Calibrate the radial distortion coefficient and the center of distortion |
||
Compare results of camera calibration and radial distortion self-calibration |
T. Thormälen, H. Broszio: “Automatic line-based estimation of radial lens distortion”; in: Integrated Computer-Aided Engineering; vol. 12; pp. 177-190; 2005.