【Halcon】线阵相机标定

我是使用halcon标定助手来标定线阵相机的,对于里面的一些参数来做一个记录说明:

首先下面的两个数组就是标定之后得到的相机内参外参

内参:CameraParameters := [0.0357809  ,  -61.3384  ,  6e-006  ,  6e-006  ,  915.932  ,  182.341  ,  2048  ,  3840  ,  1.41028e-006  ,  5.45462e-005  ,  3.86866e-006]
外参:CameraPose := [-0.0160874,0.0553653,0.255282,28.5899,6.24194,8.48283,0]

内参的11个参数分别是什么意思呢一共十一个参数分别为  [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]

Focus : 镜头焦距长度

Kappa: 镜头畸变系数,正负分别表示枕形畸变和桶状畸变

Sx: 表示相机单个像元宽度

Sy: 表示相机单个像元高度

Cx: 表示镜头光轴在像平面坐标上的投影横坐标,一般初始化的时候设置为width/2

Cy: 表示镜头光轴在像平面坐标上的投影纵坐标,一般初始化的时候设置为0,因为是一帧是一条线,所以纵坐标为0

ImageWidth: 表示一整副图片像素宽度

ImageHeight: 表示一整幅图片像素高度
Vx : x方向上运动速度,其实就是每拍摄一条线,x方向的走的距离,因为安装有误差,相机和运动方向不可能完全垂直,理论上为0最理想

Vy: y方向上运动速度,其实就是在扫描的时候,多远距离拍摄一条线

Vz: z方向上运动速度,其实就是每拍摄一条线,z方向上走的距离,也是因为安装有误差,理论上为0最理想

外参的六个参数表示由世界坐标系转换成相机坐标系的变换参数,六个参数分别为x,y,z三个轴的旋转角度和x,y,x三个轴的平移量

======================================================================================================

1.在halcon中使用标定助手对线扫相机进行标定,首先设置标定板描述文件路径,和镜头等相关参数

3.得到的内参,如何进行畸变矫正呢如下代码,注释为蓝色,代码为红色。

你希望映射过后的图片的宽度(一条线)内视野为多少,这里为30mm,然后除以1000换算成m

TmpCtrl_RectificationWidth := 30
TmpCtrl_RectificationWidth := TmpCtrl_RectificationWidth / 1000.0

生成用于矫正的映射图,着重说一下这几个输入参数

CameraParameters:标定得到的相机内参

CameraPose:标定得到的相机位姿外参

2048:待转换图的宽度

3840:待转换图的高度

2048:转换之后的图像希望的宽度

3840:转换之后的图像希望的高度

TmpCtrl_RectificationWidth / 2048:表示希望转换后的图,每个像素代表的长度,单位是m。这里因为宽度视野(一条线覆盖的视野宽度)希望是30mm,而希望转换后的图像宽度为2048,所以这里用TmpCtrl_RectificationWidth / 2048,也就是说你可以自定义转换之后的图像每隔像素代表多少精度,这里的精度就是30mm/2048pix = 0.014mm/pix .注意下面的这个函数就是将图片转换成了z=0,垂直视角的函数,参看halcon函数说明。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月11日
下一篇 2019年7月11日

相关推荐