单相机标定

1:单相机标定目的

1)校正畸变

2)变换到世界坐标系,用于实际物理尺寸的测量

2:标定过程

通过标定助手,过程很简单。

HALCON通过标定板进行标定的。标定板的选取:标定板占视野的三分一左右。

标定板图像的数量:大概左右10-20张,并不是越多越好。但要求移动标定板尽量覆盖相机视野。

具体过程参考博文:

https://blog.csdn.net/cashmood/article/details/100089295

https://blog.csdn.net/weixin_43197380/article/details/90438976

3: 算子

gen_caltab :生成标定板文件

change_radial_distortion_cam_par:校正径向畸变,得到新的相机内参

gen_radial_distortion_map:根据标定得到的相机内参,生成畸变变换关系

gen_image_to_world_plane_map:根据标定得到的相机内外参,生成世界坐标变换关系

map_image:根据上面的两个变换,进行图像映射,校正畸变,变换到世界坐标系

4:畸变校正例子

*相机内参
CameraParameters := [0.00219846, -78129.2, 5.46495e-06, 5.5e-06, 318.206, 236.732, 640, 480]

*相机外参,畸变校正只和内参有关
*CameraPose := [-0.0091626,-0.00625214,0.700967,2.46926,358.933,179.443,0]

*校正径向畸变
change_radial_distortion_cam_par ('adaptive', CameraParameters, 0, CamParamOut)

*对畸变生成投影映射
gen_radial_distortion_map (Map, CameraParameters, CamParamOut, 'bilinear')

*对图像进行畸变校正
read_image (Image, 'pioneer')
map_image (Image, Map, ImageMapped)

畸变校正只和内参有关。左图是原图,右图是畸变校正后图像

5: 畸变校正 + 坐标变换例子

参考博文https://blog.csdn.net/weixin_43197380/article/details/90438976,“三、实战:以一元硬币为例”