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

 

 

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

 

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

 

求出了相机内参就能够进行畸变校订,于是自标定相对于多幅标定,在畸变校订方面更快捷,这样设备在现场更容易操做、维护。dom

 

在畸变校订之后咱们一样能够放置一个参考物求取像素当量,构建XY世界坐标系,以用于测量、定位等应用。ide

 

  1. 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

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。
 
 
关注微信:halconhub,每日获取halcon精华文章
相关文章
相关标签/搜索