Halcon 单相机标定+消除径向畸变
单相机标定通常是相机使用的第一步,只有通过标定才能准确的获得相机的内参,以便于进行消除畸变、1D/2D测量等后续操作。
1、生成标定板描述文件
gen_caltab (7, 7, 0.0125, 0.5, 'caltab.descr', 'caltab.ps')
参数含义可以查手册(f1),运行后会在当前目录下生成两个文件: caltab.descr:标定板描述文件用于接下来的标定 caltab.ps:可用于打印标定板
2、标定助手
1)、描述文件选择刚刚生成的 2)、选择全标定,相元的高、宽可以咨询相机的商家询问,焦距可以查看镜头上,一般有标明,这里的参数只是初始参数。 3)、标定栏,选择采集助手,点实时,有两种合格的状态提示(确定是完美品质,品质有问题不耽误使用),失败一般是没有完全覆盖标定板。 4)、点采集20张左右的图片,尽量覆盖整个视场,覆盖所有角度(3d)。 5)、选择一张图片作为基础参考位姿。 6)、可以保存图片,如果标定后续有可能利用标定助手生成的代码进行标定可以用。失败的图片要移除,否则无法标定。 7)、点击标定,可以看到结果栏的内外参结果,可以保存成文件。用的时候可以直接读取进程序使用。 8)、在代码生成栏,可以插入tuple数据,也可以插入标定代码。
3、实例:单相机标定+消除径向畸变
* 标定 + 消除径向畸变 * Calibration 01: Code generated by Calibration 01 CameraParameters := [0.0057932,-11394.5,6.00136e-006,6e-006,330.616,235.876,640,480] CameraPose := [0.00223981,-0.00965318,0.110595,6.81103,1.68414,177.246,0] * Image Acquisition 01: Code generated by Image Acquisition 01 change_radial_distortion_cam_par ('adaptive', CameraParameters, 0, CamParamOut) open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '[0] LRCP USB2.0', 0, -1, AcqHandle) grab_image_start (AcqHandle, -1) while (true) grab_image_async (Image, AcqHandle, -1) * Image Acquisition 01: Do something gen_radial_distortion_map (Map, CameraParameters, CamParamOut, 'bilinear') map_image (Image, Map, ImageMapped) endwhile close_framegrabber (AcqHandle)
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。